SQL Server CONVERT 函数:日期时间转换 Style 代码速查

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

在 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 函数技巧的资料请关注本站其它相关文章!

相关标签:

本站声明

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

Python 相关产品和应用

全部下载

专题列表