2012-04-09 18 views
0

YYYYMMの形式で年/月INT列を短い月のユーザーフレンドリーな日付(例:Jan、Feb)の形式にすることができますか?SQL Server T-SQL - INTを変換します。 2012年11月から2012年11月の値を選択中

例をいくつ:2013年12月から2011年1月
201312へ

私はコンポーネントの心配をサブストリングすることはできません、私はちょうど1月に01をオンにする方法を考え出すことはできません

EDIT:カールの答え@に基づいて

このそれは私が出ている - それはかなり醜いですが、それは動作します:

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 
+0

'LEFT(DATENAME(M]を選択し、[値] 100%)、 3)+ STR([値]/100,5) ' – Alex

+0

@alex - それは残念です - SELECT LEFT(日付(m、201206%100)、3)+ STR(201206/100,5) 2012年1月... 2012年6月になる必要があります – Rob

+0

申し訳ありません、 '左に選択してください(日付、年月日(m、DATEADD(m、201206%100、-1))、3)+ STR(201206/100,5) ' – Alex

答えて

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)