SQL如何将datetime类型转换为完整月份名加年份的格式
问题解决:SQL Server获取完整英文月份+年份格式
你当前使用的CONVERT样式代码106的输出规则就是返回3位缩写月份,因此无法直接截取得到完整月份名,可使用以下两种方案实现需求:
方案1:SQL Server 2012及以上版本(最简写法)
直接使用FORMAT函数,其中格式符MMMM代表完整英文月份名,yyyy代表4位年份:
UPDATE TABLE1 SET AccountingPeriod = FORMAT(GETDATE(), 'MMMM yyyy')
如果需要处理的不是当前时间,而是表内存储的datetime字段,把GETDATE()替换为对应字段名即可。
方案2:全版本兼容写法
使用DATENAME函数分别获取月份和年份后拼接,兼容所有SQL Server版本:
UPDATE TABLE1 SET AccountingPeriod = DATENAME(MONTH, GETDATE()) + ' ' + DATENAME(YEAR, GETDATE())
以上两种方案执行后都可以得到January 2021这类符合要求的输出。
内容的提问来源于stack exchange,提问作者Harsh Bilodiya
相关产品推荐
相关产品推荐

