使用 CONVERT 格式化日期時間

你可以使用 CONVERT 函式將 datetime 資料型別轉換為格式化字串。

SELECT GETDATE() AS [Result] -- 2016-07-21 07:56:10.927

你還可以使用一些內建程式碼轉換為特定格式。以下是 SQL Server 內建的選項:

DECLARE @convert_code INT = 100 -- See Table Below
SELECT CONVERT(VARCHAR(30), GETDATE(), @convert_code) AS [Result]
@convert_code 結果
100 “2016 年 7 月 21 日上午 7:56”
101 “2016 年 7 月 21 日”
102 “2016 年 7 月 21 日”
103 “21/07/2016”
104 “2016 年 7 月 21 日”
105 “21-07-2016”
106 “2016 年 7 月 21 日”
107 “2016 年 7 月 21 日”
108 “7 點 57 分 05 秒”
109 “2016 年 7 月 21 日 7:57:45:707AM”
110 “2016 年 7 月 21 日”
111 “2016 年 7 月 21 日”
112 20160721
113 “2016 年 7 月 21 日 07:57:59:553”
114 “07:57:59:553”
120 “2016-07-21 07:57:59”
121 “2016-07-21 07:57:59.553”
126 “2016-07-21T07:58:34.340”
127 “2016-07-21T07:58:34.340”
130 “16 ???? 1437 7:58:34:340AM”
131 “16/10/1437 7:58:34:340AM”
SELECT `GETDATE()` AS [Result]                                -- 2016-07-21 07:56:10.927
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),100) AS [Result] -- Jul 21 2016  7:56AM
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),101) AS [Result] -- 07/21/2016
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),102) AS [Result] -- 2016.07.21
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),103) AS [Result] -- 21/07/2016
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),104) AS [Result] -- 21.07.2016
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),105) AS [Result] -- 21-07-2016
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),106) AS [Result] -- 21 Jul 2016
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),107) AS [Result] -- Jul 21, 2016
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),108) AS [Result] -- 07:57:05
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),109) AS [Result] -- Jul 21 2016  7:57:45:707AM
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),110) AS [Result] -- 07-21-2016
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),111) AS [Result] -- 2016/07/21
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),112) AS [Result] -- 20160721
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),113) AS [Result] -- 21 Jul 2016 07:57:59:553
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),114) AS [Result] -- 07:57:59:553
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),120) AS [Result] -- 2016-07-21 07:57:59
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),121) AS [Result] -- 2016-07-21 07:57:59.553
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),126) AS [Result] -- 2016-07-21T07:58:34.340
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),127) AS [Result] -- 2016-07-21T07:58:34.340
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),130) AS [Result] -- 16 ???? 1437  7:58:34:340AM
UNION SELECT CONVERT(`VARCHAR(30)`,GETDATE(),131) AS [Result] -- 16/10/1437  7:58:34:340AM