在本文中,我们将向您展示如何使用示例执行 DATE 格式或格式化 SQL Server 的日期和时间。
Convert SQL DATE 格式示例
在进行实际示例之前,我将向您解释可用的 Convert 日期格式列表。我们将使用 CONVERT 和 FORMAT 函数为本次演示编写不同的日期格式查询。CONVERT 函数提供不同的样式来格式化日期和时间。
| 不含世纪 (yy) | 含世纪 (yyyy) | 输入/输出 | 标准 |
|---|---|---|---|
| – | 0 至 100 | 月 日 年 时:分 AM/PM | 这是 datetime 和 smalldatetime 的默认值 |
| 1 | 101 | 1 = 月/日/年 101 = 月/日/年 | 美国 |
| 2 | 102 | 2 = 年.月.日 102 = 年.月.日 | ANSI |
| 3 | 103 | 3 = 日/月/年 103 = 日/月/年 | 英式/法式 |
| 4 | 104 | 4 = 日.月.年 104 = 日.月.年 | 德式 |
| 5 | 105 | 5 = 日-月-年 105 = 日-月-年 | 意大利式 |
| 6 | 106 | 6 = 日 月 年 106 = 日 月 年 | – |
| 7 | 107 | 7 = 月 日, 年 107 = 月 日, 年 | – |
| 8 | 108 | 时:分:秒 | – |
| – | 9 或 109 | 月 日 年 时:分:秒:毫秒 AM/PM | 默认 + 毫秒 |
| 10 | 110 | 10 = 月-日-年 110 = 月-日-年 | 美国 |
| 11 | 111 | 11 = 年/月/日 111 = 年/月/日 | 日本 |
| 12 | 112 | 12 = 年年月 112 = 年年月 | ISO |
| – | 13 或 113 | 日 月 年 时:分:秒:毫秒(24小时制) | 欧洲默认 + 毫秒 |
| 14 | 114 | 时:分:秒:毫秒(24小时制) | – |
| – | 20 或 120 | 年-月-日 时:分:秒(24小时制) | ODBC 规范 |
| – | 21 或 121 | 年-月-日 时:分:秒.毫秒(24小时制) | ODBC 规范带毫秒。这是 time, date, datetime2, 和 datetimeoffset 的默认值 |
| – | 126 | 年-月-日Th时:分:秒.毫秒 (无空格) | ISO8601 |
| – | 127 | 年-月-日Th时:分:秒.毫秒Z (无空格) | 带时区 Z 的 ISO8601 |
| – | 130 | 日 月 年 时:分:秒:毫秒 AM | 回历 |
| – | 131 | 日/月/年 时:分:秒:毫秒 AM | 回历 |
使用 CONVERT 函数的 SQL Server DATE 格式
在此示例中,我们将使用 CONVERT 函数对 GETDATE() 进行操作,以不同的格式返回日期。
SELECT CONVERT(VARCHAR(20), GETDATE()) AS 'Result 1'; SELECT CONVERT(VARCHAR(20), GETDATE(), 0) AS 'Result 2'; SELECT CONVERT(VARCHAR(20), GETDATE(), 100) AS 'Result 3'; SELECT CONVERT(VARCHAR(20), GETDATE(), 1) AS 'Result 4'; SELECT CONVERT(VARCHAR(20), GETDATE(), 101) AS 'Result 5'; SELECT CONVERT(VARCHAR(20), GETDATE(), 2) AS 'Result 6'; SELECT CONVERT(VARCHAR(20), GETDATE(), 102) AS 'Result 7';

Convert DATE 格式示例 2
此示例查询涵盖了 Convert 函数的更多功能。
SELECT CONVERT(VARCHAR(20), GETDATE(), 3) AS 'Result 8'; SELECT CONVERT(VARCHAR(20), GETDATE(), 103) AS 'Result 9'; SELECT CONVERT(VARCHAR(20), GETDATE(), 4) AS 'Result 10'; SELECT CONVERT(VARCHAR(20), GETDATE(), 104) AS 'Result 11'; SELECT CONVERT(VARCHAR(20), GETDATE(), 5) AS 'Result 12'; SELECT CONVERT(VARCHAR(20), GETDATE(), 105) AS 'Result 13'; SELECT CONVERT(VARCHAR(20), GETDATE(), 6) AS 'Result 14'; SELECT CONVERT(VARCHAR(20), GETDATE(), 106) AS 'Result 15';

在此 SQL Server 示例查询中,我们展示了 Convert 函数中的其他一些日期格式:
SELECT CONVERT(VARCHAR(20), GETDATE(), 7) AS 'Result 16'; SELECT CONVERT(VARCHAR(20), GETDATE(), 107) AS 'Result 17'; SELECT CONVERT(VARCHAR(20), GETDATE(), 8) AS 'Result 18'; SELECT CONVERT(VARCHAR(20), GETDATE(), 108) AS 'Result 19'; SELECT CONVERT(VARCHAR(20), GETDATE(), 9) AS 'Result 20'; SELECT CONVERT(VARCHAR(20), GETDATE(), 109) AS 'Result 21'; SELECT CONVERT(VARCHAR(20), GETDATE(), 10) AS 'Result 22'; SELECT CONVERT(VARCHAR(20), GETDATE(), 110) AS 'Result 23';

其他一些 convert 日期格式。
SELECT CONVERT(VARCHAR(20), GETDATE(), 11) AS 'Result 24'; SELECT CONVERT(VARCHAR(20), GETDATE(), 111) AS 'Result 25'; SELECT CONVERT(VARCHAR(20), GETDATE(), 12) AS 'Result 26'; SELECT CONVERT(VARCHAR(20), GETDATE(), 112) AS 'Result 27'; SELECT CONVERT(VARCHAR(20), GETDATE(), 113) AS 'Result 28'; SELECT CONVERT(VARCHAR(20), GETDATE(), 14) AS 'Result 29'; SELECT CONVERT(VARCHAR(20), GETDATE(), 114) AS 'Result 30'; SELECT CONVERT(VARCHAR(20), GETDATE(), 20) AS 'Result 31';

以下是 Convert 函数中可用于日期格式的其余选项列表。
SELECT CONVERT(VARCHAR(35), GETDATE(), 21) AS 'Result 32'; SELECT CONVERT(VARCHAR(35), GETDATE(), 126) AS 'Result 33'; SELECT CONVERT(VARCHAR(35), GETDATE(), 127) AS 'Result 34'; SELECT CONVERT(NVARCHAR(35), GETDATE(), 130) AS 'Result 35'; SELECT CONVERT(NVARCHAR(35), GETDATE(), 131) AS 'Result 36';

SQL Date Format 函数
在此示例中,我们将使用 FORMAT 函数对 GETDATE() 进行操作,以不同的格式返回日期。我建议您参考 标准日期和时间字符串 来理解此示例中使用的字符串格式。
SELECT FORMAT(GETDATE(), 'd', 'en-US' ) AS 'Result 1' SELECT FORMAT(GETDATE(), 'D', 'en-US' ) AS 'Result 2' SELECT FORMAT(GETDATE(), 'f', 'en-US' ) AS 'Result 3' SELECT FORMAT(GETDATE(), 'F', 'en-US' ) AS 'Result 4' SELECT FORMAT(GETDATE(), 'g', 'en-US' ) AS 'Result 5' SELECT FORMAT(GETDATE(), 'G', 'en-US' ) AS 'Result 6' SELECT FORMAT(GETDATE(), 'm', 'en-US' ) AS 'Result 7' SELECT FORMAT(GETDATE(), 'M', 'en-US' ) AS 'Result 8'

以下是 Format 函数中可用于日期格式的其余变体列表。
SELECT FORMAT(GETDATE(), 'O', 'en-US' ) AS 'Result 9' SELECT FORMAT(GETDATE(), 'R', 'en-US' ) AS 'Result 10' SELECT FORMAT(GETDATE(), 's', 'en-US' ) AS 'Result 11' SELECT FORMAT(GETDATE(), 'S', 'en-US' ) AS 'Result 12' SELECT FORMAT(GETDATE(), 't', 'en-US' ) AS 'Result 13' SELECT FORMAT(GETDATE(), 'T', 'en-US' ) AS 'Result 14' SELECT FORMAT(GETDATE(), 'u', 'en-US' ) AS 'Result 15' SELECT FORMAT(GETDATE(), 'U', 'en-US' ) AS 'Result 16' SELECT FORMAT(GETDATE(), 'Y', 'en-US' ) AS 'Result 17'

使用 Datetime 函数格式化
在这里,我们将使用 SQL Server 中可用的 DATETIME 函数来格式化日期和时间,以不同的格式返回日期。
SELECT DATEFROMPARTS(2017, 06, 14) AS 'Result 1';
SELECT DATETIMEFROMPARTS(2017, 06, 14, 11, 57, 53, 847) AS 'Result 3';
SELECT EOMONTH('20170614') AS 'Result 3';

使用转换函数格式化
在此示例中,我们将使用转换函数来格式化日期和时间。转换函数包括 PARSE、TRY_PARSE、CONVERT 和 TRY_CONVERT。我们对不同的日期使用这些函数,以不同的变体返回它们。
SELECT PARSE('Wednesday, June 14, 2017' AS DATETIME USING 'en-US') AS 'Result4';
SELECT TRY_PARSE('Wednesday, June 14, 2017' AS DATETIME USING 'en-US') AS 'Result5';
SELECT CONVERT(DATETIME2, SYSDATETIME()) AS 'Result6';
SELECT TRY_CONVERT(DATETIME2, '6/14/2017 11:57:53 AM') AS 'Result7';
