0

只是想知道是否有人可以帮助我将格式为 YYYYMM 的年/月 INT 列格式化为一个用户友好的日期,例如一月、二月而不是数字。

几个例子:

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

我可以不用担心子串出组件,我只是不知道如何将 01 转为 Jan。

编辑:

根据@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 回答