0

YYYYMM 形式の年/月 INT 列を、数値ではなく、Jan、Feb などの短い月のユーザーフレンドリーな日付にフォーマットするのを誰かが手伝ってくれるかどうか疑問に思っています。

いくつかの例:

201101~2011年1月
201312~2013年12月

01 を 1 月に変換する方法がわかりません。

編集:

@Karlの回答に基づいて、これは私が思いついたものです-かなり醜いですが、機能します:

DECLARE @Test INT
SET @Test = 201206

SELECT SUBSTRING(DATENAME(month, DATEADD(month, CAST(SUBSTRING(CAST(@TEST AS VARCHAR), 5, 2) AS INT) - 1 , CAST('2008-01-01' AS datetime))),1,3) + ' ' + SUBSTRING(CAST(@Test AS VARCHAR),1,4) as Test
4

1 に答える 1

0

ちょうど別のアプローチ (変換後に日の部分を削除):

declare @test int;

set @test=201212

select substring(CONVERT(varchar(11),CONVERT(date, cast (@test * 100 + 1 as varchar(8)), 112),106),4,8)
于 2012-04-09T10:06:13.180 に答える