如何在SQL Server中从DateTime字段提取英文月份名称
SQL Server DateTime字段提取英文月份全称实现方案
方案1:使用DATENAME函数(全版本兼容)
DATENAME是SQL Server原生支持的日期处理函数,可直接返回日期指定部分的字符串形式:
-- 基础用法,适用于会话默认语言为英文的场景 SELECT DATENAME(MONTH, dXFactory) AS 英文月份 FROM 你的表名;
如果当前会话默认语言不是英文,可临时指定会话语言再查询:
SET LANGUAGE English; SELECT DATENAME(MONTH, dXFactory) AS 英文月份 FROM 你的表名;
针对示例值2021-04-22 13:12:26.000,上述查询返回结果为April。
方案2:使用FORMAT函数(SQL Server 2012及以上版本推荐)
FORMAT函数支持直接指定区域参数,不需要修改全局会话配置,返回结果更稳定:
SELECT FORMAT(dXFactory, 'MMMM', 'en-US') AS 英文月份 FROM 你的表名;
参数说明:
- 第二个参数
MMMM:约定输出完整的月份名称 - 第三个参数
en-US:指定使用美国英语的格式规则,不受当前会话语言影响
选型建议
- 如果你使用的SQL Server版本低于2012,无法使用FORMAT函数,优先选择方案1
- 如果你需要固定返回英文月份,不希望受会话语言变动影响,优先选择方案2
内容的提问来源于stack exchange,提问作者Niki_S
相关产品推荐
相关产品推荐

