SQL Server CONVERT 函数:日期时间转换 Style 代码速查
在 SQL Server 开发中,经常需要将日期时间类型(datetime)转换为字符串(varchar/nvarchar)。CONVERT 函数提供了灵活的 Style 参数来控制输出格式。本文整理了常用 Style 代码对照表及查询示例,方便开发者快速查阅和使用。
CONVERT 函数基本语法
CONVERT 函数主要用于将一种数据类型转换为另一种数据类型,特别是在日期和时间处理场景中最为常见。其标准语法如下:
CONVERT(data_type, expression[, style])
data_type:目标数据类型,如varchar(30)、int等。expression:需要转换的表达式,如GETDATE()或列名。style:可选参数,整数,指定日期/数字的输出格式。对于日期转换,不同的 Style 值对应不同的格式(如美式、欧式、ISO 等)。
日期转换 Style 代码速查
当使用 CONVERT 将 datetime 转换为字符类型时,Style 参数决定了日期的显示方式。以下是常用 Style 代码及其对应的格式含义(以 2006-05-16 为例):
第1步:两位年份与四位年份对照
部分 Style 代码同时支持两位年份和四位年份表示,区别在于百位数的有无:
| Style (2位年份) | Style (4位年份) | 输入输出格式 |
|---|---|---|
| 0 | 100 | mon dd yyyy hh:miAM (或 PM) |
| 1 | 101 | mm/dd/yy (美国) |
| 2 | 102 | yy-mm-dd (ANSI) |
| 3 | 103 | dd/mm/yy (英法) |
| 4 | 104 | dd.mm.yy (德国) |
| 5 | 105 | dd-mm-yy (意大利) |
| 6 | 106 | dd mon yy |
| 7 | 107 | mon dd, yy |
| 8 | 108 | hh:mm:ss |
| 9 | 109 | mon dd yyyy hh:mi:ss:mmmmAM/PM |
| 10 | 110 | mm-dd-yy (美国) |
| 11 | 111 | yy/mm/dd (日本) |
| 12 | 112 | yymmdd (ISO) |
| 13 | 113 | dd mon yyyy hh:mi:ss:mmm (24小时) |
| 14 | 114 | hh:mi:ss:mmm (24小时) |
| 20 | 120 | yyyy-mm-dd hh:mi:ss (24小时, ODBC规范) |
| 21 | 121 | yyyy-mm-dd hh:mi:ss.mmm (24小时) |
常用 CONVERT 语句示例
以下 SQL 语句演示了不同 Style 参数在实际查询中的输出结果。假设当前时间为 2006-05-16 10:57:xx:
第2步:执行基础格式查询
通过 SELECT 语句结合 CONVERT 函数,可以快速验证期望的日期格式:
-- 1. 默认格式 (月 日 年 时间)
SELECT CONVERT(varchar(100), GETDATE(), 0)
-- Output: May 16 2006 10:57AM
-- 2. 美式日期 (月/日/年)
SELECT CONVERT(varchar(100), GETDATE(), 1)
-- Output: 05/16/06
-- 3. ANSI 格式 (年.月.日)
SELECT CONVERT(varchar(100), GETDATE(), 2)
-- Output: 06.05.16
-- 4. 英式日期 (日/月/年)
SELECT CONVERT(varchar(100), GETDATE(), 3)
-- Output: 16/05/06
-- 5. ISO 无分隔符 (年月日)
SELECT CONVERT(varchar(100), GETDATE(), 112)
-- Output: 20060516
-- 6. 标准 ODBC 格式 (年-月-日 时:分:秒)
SELECT CONVERT(varchar(100), GETDATE(), 20)
-- Output: 2006-05-16 10:57:47
第3步:获取纯日期或纯时间
若只需日期部分或时间部分,可选择特定的 Style 码:
-- 仅显示日期 (yyyy-MM-dd)
SELECT CONVERT(varchar(100), GETDATE(), 23)
-- Output: 2006-05-16
-- 仅显示时间 (HH:mm:ss)
SELECT CONVERT(varchar(100), GETDATE(), 108)
-- Output: 10:57:49
-- ISO 8601 格式 (带 T 分隔符)
SELECT CONVERT(varchar(100), GETDATE(), 126)
-- Output: 2006-05-16T10:57:49.827
注意事项
- 长度限制:转换为目标
varchar时,请确保定义的长度足够容纳最长可能的格式(通常 100 位以上足够安全),否则内容会被截断。 - 区域设置:Style 代码是固定的,不受服务器语言或区域设置影响,这使得它比
FORMAT函数在某些情况下更稳定。 - SQL Server 版本:上述 Style 适用于大多数现代 SQL Server 版本。在极老版本中,少数特定风格可能不支持。
以上就是 SQL Server CONVERT 函数日期格式转换 Style 代码的详细使用说明。更多关于 SQL 函数技巧的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













