T-SQL—— SQL Server 时间格式化
shanzm-2023年5月15日 17:23:40
0.说明
SQLServer2008版本及之前版本,使用CONVERT
函数对日期进行格式转换
SQLServer2012版本及以后版本,引入了FORMAT
函数,该函数对日期格式化更方便,也更便于记忆使用
1.使用Convert转换时间格式
SQL语句 | 时间格式 |
---|---|
SELECT CONVERT(varchar(100), GETDATE(), 0) | 04 26 2023 9:04AM |
SELECT CONVERT(varchar(100), GETDATE(), 1) | 04/26/23 |
SELECT CONVERT(varchar(100), GETDATE(), 2) | 23.04.26 |
SELECT CONVERT(varchar(100), GETDATE(), 3) | 26/04/23 |
SELECT CONVERT(varchar(100), GETDATE(), 4) | 26.04.23 |
SELECT CONVERT(varchar(100), GETDATE(), 5) | 26-04-23 |
SELECT CONVERT(varchar(100), GETDATE(), 6) | 26 04 23 |
SELECT CONVERT(varchar(100), GETDATE(), 7) | 04 26, 23 |
SELECT CONVERT(varchar(100), GETDATE(), 8) | 09:04:34 |
SELECT CONVERT(varchar(100), GETDATE(), 9) | 04 26 2023 9:04:34:250AM |
SELECT CONVERT(varchar(100), GETDATE(), 10) | 04-26-23 |
SELECT CONVERT(varchar(100), GETDATE(), 11) | 23/04/26 |
SELECT CONVERT(varchar(100), GETDATE(), 12) | 230426 |
SELECT CONVERT(varchar(100), GETDATE(), 13) | 26 04 2023 09:04:34:250 |
SELECT CONVERT(varchar(100), GETDATE(), 14) | 09:04:34:250 |
SELECT CONVERT(varchar(100), GETDATE(), 20) | 2023-04-26 09:04:34 |
SELECT CONVERT(varchar(100), GETDATE(), 21) | 2023-04-26 09:04:34.250 |
SELECT CONVERT(varchar(100), GETDATE(), 22) | 04/26/23 9:04:34 AM |
SELECT CONVERT(varchar(100), GETDATE(), 23) | 2023-04-26 |
SELECT CONVERT(varchar(100), GETDATE(), 24) | 09:04:34 |
SELECT CONVERT(varchar(100), GETDATE(), 25) | 2023-04-26 09:04:34.250 |
SELECT CONVERT(varchar(100), GETDATE(), 100) | 04 26 2023 9:04AM |
SELECT CONVERT(varchar(100), GETDATE(), 101) | 04/26/2023 |
SELECT CONVERT(varchar(100), GETDATE(), 102) | 2023.04.26 |
SELECT CONVERT(varchar(100), GETDATE(), 103) | 26/04/2023 |
SELECT CONVERT(varchar(100), GETDATE(), 104) | 26.04.2023 |
SELECT CONVERT(varchar(100), GETDATE(), 105) | 26-04-2023 |
SELECT CONVERT(varchar(100), GETDATE(), 106) | 26 04 2023 |
SELECT CONVERT(varchar(100), GETDATE(), 107) | 04 26, 2023 |
SELECT CONVERT(varchar(100), GETDATE(), 108) | 09:04:34 |
SELECT CONVERT(varchar(100), GETDATE(), 109) | 04 26 2023 9:04:34:250AM |
SELECT CONVERT(varchar(100), GETDATE(), 110) | 04-26-2023 |
SELECT CONVERT(varchar(100), GETDATE(), 111) | 2023/04/26 |
SELECT CONVERT(varchar(100), GETDATE(), 112) | 20230426 |
SELECT CONVERT(varchar(100), GETDATE(), 113) | 26 04 2023 09:04:34:250 |
SELECT CONVERT(varchar(100), GETDATE(), 114) | 09:04:34:250 |
SELECT CONVERT(varchar(100), GETDATE(), 120) | 2023-04-26 09:04:34 |
SELECT CONVERT(varchar(100), GETDATE(), 121) | 2023-04-26 09:04:34.250 |
SELECT CONVERT(varchar(100), GETDATE(), 126) | 2023-04-26T09:04:34.250 |
使用字符串函数操作:
SELECT REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120), '-', ''), ' ', ''), ':', '');
--结果:20230426194016
2.使用Format转换时间格式
SQL语句 | 时间格式 |
---|---|
SELECT FORMAT(GETDATE(), 'dd/MM/yyyy') | 15/05/2023 |
SELECT FORMAT(GETDATE(), 'dd/MM/yyyy, hh:mm:ss ') | 15/05/2023, 05:18:13 |
SELECT FORMAT(GETDATE(), 'dddd, MMMM, yyyy') | 星期一, 五月, 2023 |
SELECT FORMAT(GETDATE(), 'MMM dd yyyy') | 5月 15 2023 |
SELECT FORMAT(GETDATE(), 'MM.dd.yy') | 05.15.23 |
SELECT FORMAT(GETDATE(), 'MM-dd-yy') | 05-15-23 |
SELECT FORMAT(GETDATE(), 'hh:mm:ss tt') | 05:18:13 下午 |
SELECT FORMAT(GETDATE(), 'yyyyMMddhhmmss') | 20230515051813 |
SELECT FORMAT( GETDATE(), 'D', 'zh-cn' ) | 2024年4月16日 |
3.补充Format格式其他使用
SELECT FORMAT(123456789,'###-##-####') ;
--
123-45-6789
4.附录-测试脚本
- Convert测试脚本
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 0)', CONVERT(varchar(100), GETDATE(), 0) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 1)', CONVERT(varchar(100), GETDATE(), 1) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 2)', CONVERT(varchar(100), GETDATE(), 2) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 3)', CONVERT(varchar(100), GETDATE(), 3) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 4)', CONVERT(varchar(100), GETDATE(), 4) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 5)', CONVERT(varchar(100), GETDATE(), 5) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 6)', CONVERT(varchar(100), GETDATE(), 6) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 7)', CONVERT(varchar(100), GETDATE(), 7) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 8)', CONVERT(varchar(100), GETDATE(), 8) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 9)', CONVERT(varchar(100), GETDATE(), 9) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 10)', CONVERT(varchar(100), GETDATE(), 10) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 11)', CONVERT(varchar(100), GETDATE(), 11) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 12)', CONVERT(varchar(100), GETDATE(), 12) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 13)', CONVERT(varchar(100), GETDATE(), 13) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 14)', CONVERT(varchar(100), GETDATE(), 14) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 20)', CONVERT(varchar(100), GETDATE(), 20) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 21)', CONVERT(varchar(100), GETDATE(), 21) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 22)', CONVERT(varchar(100), GETDATE(), 22) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 23)', CONVERT(varchar(100), GETDATE(), 23) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 24)', CONVERT(varchar(100), GETDATE(), 24) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 25)', CONVERT(varchar(100), GETDATE(), 25) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 100)', CONVERT(varchar(100), GETDATE(), 100) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 101)', CONVERT(varchar(100), GETDATE(), 101) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 102)', CONVERT(varchar(100), GETDATE(), 102) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 103)', CONVERT(varchar(100), GETDATE(), 103) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 104)', CONVERT(varchar(100), GETDATE(), 104) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 105)', CONVERT(varchar(100), GETDATE(), 105) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 106)', CONVERT(varchar(100), GETDATE(), 106) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 107)', CONVERT(varchar(100), GETDATE(), 107) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 108)', CONVERT(varchar(100), GETDATE(), 108) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 109)', CONVERT(varchar(100), GETDATE(), 109) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 110)', CONVERT(varchar(100), GETDATE(), 110) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 111)', CONVERT(varchar(100), GETDATE(), 111) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 112)', CONVERT(varchar(100), GETDATE(), 112) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 113)', CONVERT(varchar(100), GETDATE(), 113) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 114)', CONVERT(varchar(100), GETDATE(), 114) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 120)', CONVERT(varchar(100), GETDATE(), 120) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 121)', CONVERT(varchar(100), GETDATE(), 121) UNION ALL
SELECT 'SELECT CONVERT(varchar(100), GETDATE(), 126)', CONVERT(varchar(100), GETDATE(), 126)
- Format测试脚本
SELECT 'SELECT FORMAT(GETDATE(), ''dd/MM/yyyy'') ', FORMAT(GETDATE(), 'dd/MM/yyyy')
UNION ALL
SELECT 'SELECT FORMAT(GETDATE(), ''dd/MM/yyyy, hh:mm:ss '')', FORMAT(GETDATE(), 'dd/MM/yyyy, hh:mm:ss ')
UNION ALL
SELECT 'SELECT FORMAT(GETDATE(), ''dddd, MMMM, yyyy'')', FORMAT(GETDATE(), 'dddd, MMMM, yyyy')
UNION ALL
SELECT 'SELECT FORMAT(GETDATE(), ''MMM dd yyyy'')', FORMAT(GETDATE(), 'MMM dd yyyy')
UNION ALL
SELECT 'SELECT FORMAT(GETDATE(), ''MM.dd.yy'')', FORMAT(GETDATE(), 'MM.dd.yy')
UNION ALL
SELECT 'SELECT FORMAT(GETDATE(), ''MM-dd-yy'')', FORMAT(GETDATE(), 'MM-dd-yy')
UNION ALL
SELECT 'SELECT FORMAT(GETDATE(), ''hh:mm:ss tt'')', FORMAT(GETDATE(), 'hh:mm:ss tt')
UNION ALL
SELECT 'SELECT FORMAT(GETDATE(), ''yyyyMMddhhmmss'')', FORMAT(GETDATE(), 'yyyyMMddhhmmss');
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异