Database
 sql >> Baza danych >  >> RDS >> Database

Jak zmienić format daty i godziny w T-SQL

Problem:

Chcesz zmienić format pola daty lub wartości w bazie danych SQL Server.

Przykład:

Nasza baza danych zawiera tabelę o nazwie Patient z danymi w kolumnach Id , FirstName , LastName i RegistrationDate .

Identyfikator Imię Nazwisko Data rejestracji
1 Jana Williams 2019-06-20
2 Gabriel Brązowy 02.02.2019
3 Lora Ludowe 05.11.2016

Zmieńmy format daty rejestracji każdego pacjenta. Najpierw umieścimy nazwę dnia tygodnia, a następnie dzień i nazwę miesiąca oraz 4-cyfrowy rok (np. „piątek, 27 grudnia 2019 r.”).

Rozwiązanie:

Użyjemy funkcji FORMAT(), aby zmienić format daty w RegistrationDate kolumna.

SELECT  FirstName,
        LastName,
        FORMAT(RegistrationDate ,'dddd, d MMMM, yyyy')
          AS FormattedRegistrationDate
FROM Patient;

Oto wynik zapytania:

Imię Nazwisko Sformatowana data rejestracji
Jana Williams Czwartek, 20 czerwca 2019 r.
Gabriel Brązowy sobota, 2 lutego 2019 r.
Lora Ludowe Sobota, 5 listopada 2016

Dyskusja:

Możemy zmienić sposób wyświetlania danej daty za pomocą funkcji FORMAT(). Ta funkcja pobiera dwa argumenty obowiązkowe i jeden argument opcjonalny. W naszym przykładzie użyliśmy tylko dwóch obowiązkowych argumentów. Pierwsza to data, która może pochodzić z kolumny data/godzina/data/godzina lub dowolnego wyrażenia zwracającego datę lub godzinę. (W naszym przykładzie używamy kolumny RegistrationDate .) Drugim argumentem jest ciąg znaków zawierający nowy format daty. W naszym przykładzie użyliśmy 'dddd, dd MMMM, rrrr' :

  • dddd – Nazwa dnia tygodnia.
  • d – Dzień miesiąca, od 1 do 31.
  • MMMM – Pełna nazwa miesiąca.
  • rrrr – Rok czterocyfrowy.

Poniższa tabela przedstawia więcej specyfikatorów formatu daty/czasu:

specyfikator opis
d Dzień w zakresie 1-31
dd Dzień w zakresie 01-31
ddd Skrócona nazwa dnia tygodnia
dddd Pełna nazwa dnia tygodnia
M Miesiąc od 1 do 12
MM Miesiąc od 01 do 12
MMM Skrócona nazwa miesiąca
MMMM Pełna nazwa miesiąca
y Rok dwucyfrowy, od 0 do 99
rr 2-cyfrowy rok od 00 do 99
rrrr 4-cyfrowy rok
g Epoka (np. AD)
h Godzina od 1 do 12 (zegar 12-godzinny)
hh Godzina od 01 do 12 (zegar 12-godzinny)
H Godzina od 0 do 23 (zegar 24-godzinny)
GG Godzina od 00 do 23 (zegar 24-godzinny)
m Minuta od 0 do 59
mm Minuta od 00 do 59
s Sekunda od 0 do 59
ss Sekunda od 00 do 59
t Pierwszy znak AM lub PM (np. 9A, 5P)
tt przed południem lub po południu
z Przesunięcie godzin, bez wiodącego zera (np. +3)
zz Przesunięcie godzin, z wiodącym zerem (np. +03)

Więcej informacji na temat standardowych formatów daty i godziny oraz formatów niestandardowych znajdziesz w dokumentacji firmy Microsoft.

Jeśli chcesz sformatować tę datę dla konkretnego języka i/lub kraju, użyj trzeciego opcjonalnego argumentu:kultura . Ten argument jest ciągiem zawierającym kod kultury dla określonego regionu lub kraju. (Kody kultury składają się z kodu języka, myślnika i kodu kraju.) W poniższym przykładzie używamy kodu kultury dla Niemiec, który łączy kod języka niemieckiego („de”) z kodem kraju dla Niemiec („DE”), tj. „de-DE”. Wynikowa data jest wyświetlana w języku niemieckim i sformatowana zgodnie z oczekiwaniami niemieckich odbiorców.

SELECT  FirstName,
        LastName,
        FORMAT(RegistrationDate ,'dddd, d MMMM, yyyy', 'de-DE')
          AS FormattedRegistrationDate
FROM Patient;

Oto wynik tego zapytania:

Imię Nazwisko Data rejestracji
Jana Williams Donnerstag, 20 czerwca 2019 r.
Gabriel Brązowy Samstag, 2 lutego 2019 r.
Lora Ludowe Samstag, 5 listopada 2016

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DNA kontra nowoczesne metody tworzenia kopii zapasowych:przyszłość przechowywania danych

  2. Błąd ogólny:niezgodność wersji systemu operacyjnego

  3. Przegląd instrukcji T-SQL PRINT

  4. Normalizacja i wydajność w trybie wsadowym

  5. Klauzula SQL ORDER BY dla początkujących