Sql 如何将特定字符串转换为月份名称

Sql 如何将特定字符串转换为月份名称,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,例如: 我的数据库表数据是201201,我想显示为2012年12月。请告诉我。SQL 2005环境。这个怎么样 DECLARE @DT DATETIME SET @DT = CONVERT(DATETIME,'201201' + '01') SELECT CAST(YEAR(@DT) AS VARCHAR(4)) + ' ' + DATENAME(MM, @DT) AS [Month YYYY] 201201如何成为2012年12月的可能重复?应该是2012年1月???哈哈,对不起,是的,

例如: 我的数据库表数据是201201,我想显示为2012年12月。请告诉我。SQL 2005环境。

这个怎么样

DECLARE @DT DATETIME
SET @DT = CONVERT(DATETIME,'201201' + '01')

SELECT  CAST(YEAR(@DT) AS VARCHAR(4)) + ' ' + DATENAME(MM, @DT) AS [Month YYYY]

201201
如何成为2012年12月的可能重复?应该是2012年1月???哈哈,对不起,是的,应该是1月为什么需要添加'01'进行转换(DATETIME,'201201'+'01')?不理解是的,要转换DATETIME,字符串应该是完整的日期字符串YYYYMMDD,这就是添加“01”的原因。+1我认为,如果您在这一年中也使用
DATENAME
,并且避免将
转换为varchar(4)
,则可以将其缩短一点。否。年份函数返回整数。因此,需要进行铸造。DATENAME返回nvarchar。