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');


4.参考

posted @ 2023-05-17 07:08  shanzm  阅读(297)  评论(0编辑  收藏  举报
TOP