Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Przykłady formatowania „datetimeoffset” w SQL Server przy użyciu standardowych ciągów formatujących (T-SQL)

Pomyślałem, że byłoby ciekawie uruchomić kilka szybkich zapytań, aby zobaczyć, jak różne ciągi formatujące wpływają na formatowanie wartości daty/godziny.

Przykład 1 – Kultura niezmienna

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

Wynik (przy użyciu wyjścia pionowego):

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

Przykład 2 – angielski amerykański

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

Wynik (przy użyciu wyjścia pionowego):

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

Przykład 3 – Brytyjczycy

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

Wynik (przy użyciu wyjścia pionowego):

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

Przykład 4 – niemiecki

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

Wynik (przy użyciu wyjścia pionowego):

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

Poniższa tabela zawiera opis każdego ciągu formatu.

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

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Porównanie dat zapisanych jako varchar

  2. Jak usunąć przy użyciu INNER JOIN w programie SQL Server?

  3. Jak usunąć nagłówki kolumn podczas wysyłania wyników zapytania pocztą e-mail w programie SQL Server (T-SQL)

  4. Wstawianie dużych danych obiektowych do Salesforce.com z SQL Server

  5. Dlaczego powinienem używać int zamiast bajtu lub shorta w C#