SQLServerには西暦和暦変換関数が無いようなので、自作してみます。
SQLを使って西暦から和暦変換を行う
SQLServerには西暦和暦変換関数が無いようなので、自作してみます。
西暦和暦変換SQL
SQLServerで指定された西暦の年月日を和暦の年月日に変換するSQLです。
Declare @targetDate VARCHAR(10) = '2013/07/25' Declare @year int Declare @month int Declare @day int Declare @wareki varchar(50) Declare @gengo varchar(5) Declare @warekiyear varchar(10) IF @targetDate < '1868/01/25' BEGIN PRINT '明治以前は変換できません' RETURN END set @year = CAST( SUBSTRING( @targetDate, 1, 4 ) AS INT ) set @month = CAST( SUBSTRING( @targetDate, 6, 2 ) AS INT ) set @day = CAST( SUBSTRING( @targetDate, 9, 2 ) AS INT ) --和暦変換 IF @targetDate > '1989/01/07' BEGIN SET @gengo = '平成' SET @warekiyear = CONVERT( VARCHAR( 5 ), @year - 1988 ) + '年' END ELSE BEGIN IF @targetDate > '1926/12/24' BEGIN SET @gengo = '昭和' SET @warekiyear = CONVERT( VARCHAR( 5 ),@year - 1925 ) + '年' END ELSE BEGIN IF @targetDate > '1912/07/29' BEGIN SET @gengo = '大正' SET @warekiyear = CONVERT( VARCHAR( 5 ), @year - 1911 ) + '年' END ELSE BEGIN SET @gengo = '明治' SET @warekiyear = CONVERT( VARCHAR( 5 ), @year - 1867 ) + '年' END END END -- 1年だったら元年と表示を変更します IF @warekiyear = '1年' BEGIN SET @warekiyear = '元年' END --結果を文字列として編集 SET @wareki = @gengo + @warekiyear + CONVERT( VARCHAR( 2 ),@month )+ '月' + CONVERT( VARCHAR( 2 ), @day ) + '日' --結果の表示 PRINT @wareki
実行結果は
平成25年7月25日
です。
ちなみに
Declare @targetDate VARCHAR(10) = '1989/01/06'
で実行すると
昭和64年1月6日
です。
あとは「@targetDate」の日付を変更して試してみてください。