SQL Server CONVERT函数日期格式转换详解与常用代码

蓝鲸
蓝鲸
发布时间:2026-10-14| 4人浏览过
原创

在SQL Server开发中,处理datetime数据类型是常见需求。默认显示的日期格式往往不符合业务展示要求。本文通过CONVERT函数结合不同的style参数,整理了从标准格式到各种自定义格式的转换代码示例。

核心原理:CONVERT函数的Style参数

SQL Server中的CONVERT(data_type, expression [, style])函数允许我们通过第三个参数 style 来指定输出格式。不指定风格参数时,将使用默认的显示格式:yyyy-mm-dd Thh:mm:ss.mmm。
例如:

SELECT GETDATE();
-- 默认输出类似: 2004-09-12 11:06:08.177

获取紧凑型日期时间(去除分隔符)

如果需要生成无空格、无符号的长串数字格式(常用于文件命名或流水号),可先转换为带分隔符的格式,再使用 REPLACE 函数替换掉所有字符。

-- 转换为 yyyy-mm-dd hh:mi:ss.mmm (Style 120) 后去除分隔符
SELECT REPLACE(REPLACE(REPLACE(
    CONVERT(VARCHAR, GETDATE(), 120), '-', ''), ' ', ''), ':', ''
); 
-- 结果示例: 20231025103045

获取 YYYY/MM/DD 格式

使用Style 111可获得以斜杠分隔的日期格式。

-- 结果示例: 2023/10/25
SELECT CONVERT(VARCHAR(12), GETDATE(), 111); 

获取 YYYYMMDD 格式

Style 112 是最常用的紧凑型年月日格式(ISO标准格式的基础),常被用于比较日期大小或作为ID的一部分。

-- 结果示例: 20231025
SELECT CONVERT(VARCHAR(12), GETDATE(), 112);
-- 或者强制长度确保准确性
SELECT CONVERT(CHAR(8), GETDATE(), 112); 

点分日期格式 YYYY.MM.DD

部分报表系统偏好使用点号作为分隔符,对应Style 102。

-- 结果示例: 2023.10.25
SELECT CONVERT(VARCHAR(12), GETDATE(), 102); 

美式短日期格式 MM/DD/YYYY

适用于需要符合美国习惯的区域展示,对应Style 101。

-- 结果示例: 10/25/2023
SELECT CONVERT(VARCHAR(12), GETDATE(), 101); 

欧洲格式 DD/MM/YYYY 和 DD.MM.YYYY

在欧洲部分地区或软件系统中,日期通常以“日”开头。Style 103 为 DD/MM/YYYY,Style 104 为 DD.MM.YYYY。

-- Style 103: 25/10/2023
SELECT CONVERT(VARCHAR(12), GETDATE(), 103);

-- Style 104: 25.10.2023
SELECT CONVERT(VARCHAR(12), GETDATE(), 104); 

其他常见格式说明

  • 连字符格式 (Style 105): 输出 DD-MM-YYYY,即 select CONVERT(varchar(12), getdate(), 105),结果为 25-10-2023。
  • 时间专用 (Style 108): 仅提取小时、分钟和秒,不包含日期。例如 select CONVERT(varchar(12), getdate(), 108),结果为 14:30:05。
  • 毫秒精度 (Style 114): 包含毫秒的时间戳,格式为 hh:mi:ss.mmm。例如 select CONVERT(varchar(12), getdate(), 114),结果为 14:30:05.123。

实战示例:精准控制日期与时间输出

在实际操作中,为了数据的稳定性和完整性,建议在使用CONVERT时明确指定字符类型的长度。

-- 1. 提取纯日期部分 (YYYYMMDD)
SELECT convert(char(8), getdate(), 112);
-- 结果: 20231025

-- 2. 提取纯时间部分 (HH:MI:SS)
SELECT convert(char(8), getdate(), 108);
-- 结果: 14:30:05

-- 3. 混合操作:获取去掉空格的完整日期时间字符串
-- 原始: 2023-10-25 14:30:05.123
-- 转换目标: 20231025143005123 (需配合substring或多个replace)

总结

掌握不同Style参数的含义是使用CONVERT函数高效处理日期的关键。开发人员应根据具体的存储规范(如数据库字段)或前端展示需求(如页面HTML渲染),选择合适的Style参数进行转换,并善用VARCHAR长度限制以保证输出的一致性。

以上就是SQL Server中使用CONVERT函数转换日期格式的详细内容,更多关于SQL Server日期处理的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。