SQL Server CONVERT() 函数用法详解:日期格式转换与 Style ID 对照

Hazel
Hazel
发布时间:2026-10-15 | 6人浏览过
原创

在处理 SQL Server 数据库时,经常需要将 datetime 类型转换为可读性更强的字符串格式。CONVERT() 函数提供了灵活的 style 参数来定义输出的具体样式,本文整理了常用的转换格式与对应代码,方便直接调用。

CONVERT 函数基础语法

CONVERT() 是 SQL Server 中用于将一种数据类型显式转换为另一种数据类型的函数,尤其在 datetime 与字符串类型(如 char, varchar)之间转换时最为常用。其标准格式如下:

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
  • data_type: 目标数据类型,例如 varchar(30) 或 date。
  • expression: 需要被转换的表达式,通常使用 GETDATE() 获取当前时间。
  • style: (可选) 一个整数,用于指定日期和时间的显示格式。省略该参数时,默认行为取决于具体的转换组合。

日期格式化 Style ID 对照表

在使用 CONVERT(varchar(...), date_expression, style)style 值会产生截然不同的输出结果。以下是 SQL Server 支持的主要风格代码及其含义:

Style ID 输入/输出格式示例 说明
0 or 100 mon dd yyyy hh:miAM (PM) 默认值,包含星期缩写和 AM/PM
1 mm/dd/yy 美国格式,两位年份
2 yy.mm.dd ANSI 格式,两位年份
101 mm/dd/yyyy 美国格式,四位年份
102 yyyy.mm.dd ANSI 格式,四位年份
103 dd/mm/yyyy 英国/法国格式(日/月/年)
110 mm-dd-yyyy 美国短横线格式
111 yyyy/mm/dd 日本格式
112 yymmdd ISO 8601 基本格式(适合排序和索引)
120 yyyy-mm-dd hh:mi:ss(24小时制) ODBC 常规格式
121 yyyy-mm-dd hh:mi:ss.mmm(24小时制) ODBC 带毫秒格式
126 yyyy-mm-ddThh:mm:ss.mmm ISO 8601 完整格式,常用于 JSON 或 XML 交换
130 dd mon yyyy hh:mi:ss:mmmAM Hijri 日历格式
131 dd/mm/yy hh:mi:ss:mmmAM Hijri 日历格式,简化版

常见应用示例

以下 SQL 语句演示了如何将当前系统时间按照上述不同格式进行转换。你可以将这些代码替换到 SELECT 语句中以测试效果。

-- 格式 1: 美式 MM/DD/YYYY
SELECT CONVERT(varchar(10), GETDATE(), 101);
-- 输出示例: '05/16/2023'

-- 格式 2: 国际标准 YYYY-MM-DD
SELECT CONVERT(varchar(10), GETDATE(), 23);
-- 输出示例: '2023-05-16' 

-- 格式 3: 含时间的 ODBC 格式
SELECT CONVERT(varchar(23), GETDATE(), 120);
-- 输出示例: '2023-05-16 10:57:49'

-- 格式 4: 紧凑的数字格式 YYYYMMDD (适合文件名或排序)
SELECT CONVERT(char(8), GETDATE(), 112);
-- 输出示例: '20230516'

注意:部分 style 代码(如 20, 21, 22 等)仅针对特定子集的日期或时间部分,若需同时获取日期和时间部分,建议参考上表中的详细列表。对于纯时间部分的转换,通常可以使用 style 8 (hh:mm:ss) 或 108。

注意事项与排错

  • 长度不足截断: 当转换的目标 varchar 长度不足以容纳结果字符串时(例如 varcahr(10) 试图存下带秒的长字符串),结果会被自动截断。请确保目标字段长度足够。
  • 版本差异: 虽然大部分通用样式在所有支持的 SQL Server 版本中都存在,但涉及 ISO 8601 (126, 127) 等新特性的建议在较新版本上进行测试。
  • 语言设置影响: 某些包含英文月份缩写(如 "Jan", "Oct")的格式(如 style 0, 9, 109),其输出内容会受到服务器设置的 language 参数的影响。

总结

CONVERT() 函数提供了比 CAST() 更强大的功能,特别是在处理日期时间格式化的场景中。掌握常用的 Style ID 可以极大地提升 SQL 编写的效率,避免繁琐的字符串拼接操作。以上就是 SQL Server CONVERT() 函数用法的详细内容,更多关于 SQL 日期处理的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表