SQL Server CONVERT函数日期格式转换详解与常用代码
在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日期处理的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









