Tôi nghĩ sẽ rất thú vị khi chạy một vài truy vấn nhanh để xem các chuỗi định dạng khác nhau ảnh hưởng như thế nào đến việc định dạng các giá trị ngày / giờ.
Ví dụ 1 - Văn hóa Bất biến
DECLARE @date datetimeoffset, @culture char(2); SET @date = '2030-05-25 23:59:30.1234567 +07:00'; SET @culture = 'iv'; SELECT FORMAT(@date, 'd', @culture) AS 'd', FORMAT(@date, 'D', @culture) AS 'D', FORMAT(@date, 'f', @culture) AS 'f', FORMAT(@date, 'F', @culture) AS 'F', FORMAT(@date, 'g', @culture) AS 'g', FORMAT(@date, 'G', @culture) AS 'G', FORMAT(@date, 'm', @culture) AS 'm', FORMAT(@date, 'M', @culture) AS 'M', FORMAT(@date, 'o', @culture) AS 'o', FORMAT(@date, 'O', @culture) AS 'O', FORMAT(@date, 'r', @culture) AS 'r', FORMAT(@date, 'R', @culture) AS 'R', FORMAT(@date, 's', @culture) AS 's', FORMAT(@date, 't', @culture) AS 't', FORMAT(@date, 'T', @culture) AS 'T', FORMAT(@date, 'u', @culture) AS 'u', FORMAT(@date, 'U', @culture) AS 'U', FORMAT(@date, 'y', @culture) AS 'y', FORMAT(@date, 'Y', @culture) AS 'Y';
Kết quả (sử dụng đầu ra dọc):
d | 05/25/2030 D | Saturday, 25 May 2030 f | Saturday, 25 May 2030 23:59 F | Saturday, 25 May 2030 23:59:30 g | 05/25/2030 23:59 G | 05/25/2030 23:59:30 m | May 25 M | May 25 o | 2030-05-25T23:59:30.1234567+07:00 O | 2030-05-25T23:59:30.1234567+07:00 r | Sat, 25 May 2030 16:59:30 GMT R | Sat, 25 May 2030 16:59:30 GMT s | 2030-05-25T23:59:30 t | 23:59 T | 23:59:30 u | 2030-05-25 16:59:30Z U | NULL y | 2030 May Y | 2030 May
Ví dụ 2 - Tiếng Anh Mỹ
DECLARE @date datetimeoffset, @culture char(5); SET @date = '2030-05-25 23:59:30.1234567 +07:00'; SET @culture = 'en-us'; SELECT FORMAT(@date, 'd', @culture) AS 'd', FORMAT(@date, 'D', @culture) AS 'D', FORMAT(@date, 'f', @culture) AS 'f', FORMAT(@date, 'F', @culture) AS 'F', FORMAT(@date, 'g', @culture) AS 'g', FORMAT(@date, 'G', @culture) AS 'G', FORMAT(@date, 'm', @culture) AS 'm', FORMAT(@date, 'M', @culture) AS 'M', FORMAT(@date, 'o', @culture) AS 'o', FORMAT(@date, 'O', @culture) AS 'O', FORMAT(@date, 'r', @culture) AS 'r', FORMAT(@date, 'R', @culture) AS 'R', FORMAT(@date, 's', @culture) AS 's', FORMAT(@date, 't', @culture) AS 't', FORMAT(@date, 'T', @culture) AS 'T', FORMAT(@date, 'u', @culture) AS 'u', FORMAT(@date, 'U', @culture) AS 'U', FORMAT(@date, 'y', @culture) AS 'y', FORMAT(@date, 'Y', @culture) AS 'Y';
Kết quả (sử dụng đầu ra dọc):
d | 5/25/2030 D | Saturday, May 25, 2030 f | Saturday, May 25, 2030 11:59 PM F | Saturday, May 25, 2030 11:59:30 PM g | 5/25/2030 11:59 PM G | 5/25/2030 11:59:30 PM m | May 25 M | May 25 o | 2030-05-25T23:59:30.1234567+07:00 O | 2030-05-25T23:59:30.1234567+07:00 r | Sat, 25 May 2030 16:59:30 GMT R | Sat, 25 May 2030 16:59:30 GMT s | 2030-05-25T23:59:30 t | 11:59 PM T | 11:59:30 PM u | 2030-05-25 16:59:30Z U | NULL y | May 2030 Y | May 2030
Ví dụ 3 - Anh
DECLARE @date datetimeoffset, @culture char(5); SET @date = '2030-05-25 23:59:30.1234567 +07:00'; SET @culture = 'en-gb'; SELECT FORMAT(@date, 'd', @culture) AS 'd', FORMAT(@date, 'D', @culture) AS 'D', FORMAT(@date, 'f', @culture) AS 'f', FORMAT(@date, 'F', @culture) AS 'F', FORMAT(@date, 'g', @culture) AS 'g', FORMAT(@date, 'G', @culture) AS 'G', FORMAT(@date, 'm', @culture) AS 'm', FORMAT(@date, 'M', @culture) AS 'M', FORMAT(@date, 'o', @culture) AS 'o', FORMAT(@date, 'O', @culture) AS 'O', FORMAT(@date, 'r', @culture) AS 'r', FORMAT(@date, 'R', @culture) AS 'R', FORMAT(@date, 's', @culture) AS 's', FORMAT(@date, 't', @culture) AS 't', FORMAT(@date, 'T', @culture) AS 'T', FORMAT(@date, 'u', @culture) AS 'u', FORMAT(@date, 'U', @culture) AS 'U', FORMAT(@date, 'y', @culture) AS 'y', FORMAT(@date, 'Y', @culture) AS 'Y';
Kết quả (sử dụng đầu ra dọc):
d | 25/05/2030 D | 25 May 2030 f | 25 May 2030 23:59 F | 25 May 2030 23:59:30 g | 25/05/2030 23:59 G | 25/05/2030 23:59:30 m | 25 May M | 25 May o | 2030-05-25T23:59:30.1234567+07:00 O | 2030-05-25T23:59:30.1234567+07:00 r | Sat, 25 May 2030 16:59:30 GMT R | Sat, 25 May 2030 16:59:30 GMT s | 2030-05-25T23:59:30 t | 23:59 T | 23:59:30 u | 2030-05-25 16:59:30Z U | NULL y | May 2030 Y | May 2030
Ví dụ 4 - Tiếng Đức
DECLARE @date datetimeoffset, @culture char(2); SET @date = '2030-05-25 23:59:30.1234567 +07:00'; SET @culture = 'de'; SELECT FORMAT(@date, 'd', @culture) AS 'd', FORMAT(@date, 'D', @culture) AS 'D', FORMAT(@date, 'f', @culture) AS 'f', FORMAT(@date, 'F', @culture) AS 'F', FORMAT(@date, 'g', @culture) AS 'g', FORMAT(@date, 'G', @culture) AS 'G', FORMAT(@date, 'm', @culture) AS 'm', FORMAT(@date, 'M', @culture) AS 'M', FORMAT(@date, 'o', @culture) AS 'o', FORMAT(@date, 'O', @culture) AS 'O', FORMAT(@date, 'r', @culture) AS 'r', FORMAT(@date, 'R', @culture) AS 'R', FORMAT(@date, 's', @culture) AS 's', FORMAT(@date, 't', @culture) AS 't', FORMAT(@date, 'T', @culture) AS 'T', FORMAT(@date, 'u', @culture) AS 'u', FORMAT(@date, 'U', @culture) AS 'U', FORMAT(@date, 'y', @culture) AS 'y', FORMAT(@date, 'Y', @culture) AS 'Y';
Kết quả (sử dụng đầu ra dọc):
d | 25.05.2030 D | Samstag, 25. Mai 2030 f | Samstag, 25. Mai 2030 23:59 F | Samstag, 25. Mai 2030 23:59:30 g | 25.05.2030 23:59 G | 25.05.2030 23:59:30 m | 25. Mai M | 25. Mai o | 2030-05-25T23:59:30.1234567+07:00 O | 2030-05-25T23:59:30.1234567+07:00 r | Sat, 25 May 2030 16:59:30 GMT R | Sat, 25 May 2030 16:59:30 GMT s | 2030-05-25T23:59:30 t | 23:59 T | 23:59:30 u | 2030-05-25 16:59:30Z U | NULL y | Mai 2030 Y | Mai 2030
Bảng sau cung cấp mô tả cho từng chuỗi định dạng.
DECLARE @thedatetimeoffset datetimeoffset = '2030-05-25 23:59:30.1234567 +12:15'; SELECT FORMAT(@thedatetimeoffset, 'd') AS 'd (Short date)', FORMAT(@thedatetimeoffset, 'D') AS 'D (Long date)', FORMAT(@thedatetimeoffset, 'f') AS 'f (Full date/time - short time)', FORMAT(@thedatetimeoffset, 'F') AS 'F (Full date/time - long time)', FORMAT(@thedatetimeoffset, 'g') AS 'g (General date/time - short time)', FORMAT(@thedatetimeoffset, 'G') AS 'G (General date/time - long time)', FORMAT(@thedatetimeoffset, 'm') AS 'm (Month/day)', FORMAT(@thedatetimeoffset, 'M') AS 'M (Month/day)', FORMAT(@thedatetimeoffset, 'o') AS 'o (Round-trip date/time)', FORMAT(@thedatetimeoffset, 'O') AS 'O (Round-trip date/time)', FORMAT(@thedatetimeoffset, 'r') AS 'r (RFC1123)', FORMAT(@thedatetimeoffset, 'R') AS 'R (RFC1123)', FORMAT(@thedatetimeoffset, 's') AS 's (Sortable date/time)', FORMAT(@thedatetimeoffset, 't') AS 't (Short time)', FORMAT(@thedatetimeoffset, 'T') AS 'T (Long time)', FORMAT(@thedatetimeoffset, 'u') AS 'u (Universal sortable date/time)', FORMAT(@thedatetimeoffset, 'U') AS 'U (Universal full date/time)', FORMAT(@thedatetimeoffset, 'y') AS 'y (Year/month)', FORMAT(@thedatetimeoffset, 'Y') AS 'Y (Year/month)';
Kết quả:
d (Short date) | 5/25/2030 D (Long date) | Saturday, May 25, 2030 f (Full date/time - short time) | Saturday, May 25, 2030 11:59 PM F (Full date/time - long time) | Saturday, May 25, 2030 11:59:30 PM g (General date/time - short time) | 5/25/2030 11:59 PM G (General date/time - long time) | 5/25/2030 11:59:30 PM m (Month/day) | May 25 M (Month/day) | May 25 o (Round-trip date/time) | 2030-05-25T23:59:30.1234567+12:15 O (Round-trip date/time) | 2030-05-25T23:59:30.1234567+12:15 r (RFC1123) | Sat, 25 May 2030 11:44:30 GMT R (RFC1123) | Sat, 25 May 2030 11:44:30 GMT s (Sortable date/time) | 2030-05-25T23:59:30 t (Short time) | 11:59 PM T (Long time) | 11:59:30 PM u (Universal sortable date/time) | 2030-05-25 11:44:30Z U (Universal full date/time) | NULL y (Year/month) | May 2030 Y (Year/month) | May 2030