W SQL Server możesz użyć T-SQL FORMAT()
funkcję wyświetlania daty w żądanym formacie. Ta funkcja akceptuje opcjonalny argument „kultura”, którego można użyć do określenia amerykańskiego formatu daty.
Możesz użyć tego argumentu lub nie, w zależności od języka sesji lokalnej. Oto jednak, jak wyraźnie określić amerykański format daty.
Przykład 1 – krótki amerykański format daty
Aby wyraźnie określić, że data powinna być wyświetlana w formacie angielskiego amerykańskiego, użyj en-US
jako argument kultury:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'd', 'en-US') Result;
Wynik:
+-----------+ | Result | |-----------| | 12/1/2020 | +-----------+
W tym przypadku użyłem małej litery d
jako drugi argument. Daje to stosunkowo krótki format daty, w którym dzień i miesiąc są wyświetlane jako liczby.
A ponieważ używamy amerykańskiego formatu daty, miesiąc poprzedza dzień.
Przykład 2 – Długi amerykański format daty
Jeśli zmienię go na wielkie D
, otrzymuję dłuższy format, z podanym dniem i miesiącem:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'D', 'en-US') Result;
Wynik:
+---------------------------+ | Result | |---------------------------| | Tuesday, December 1, 2020 | +---------------------------+
Przykład 3 – Niestandardowy amerykański format daty
Jeśli okaże się, że powyższe formaty dat są zbyt restrykcyjne, zawsze możesz określić niestandardowy format daty. Na przykład, jeśli podoba Ci się poprzedni przykład, z wyjątkiem tego, że wolisz mieć tylko 3 pierwsze litery dnia i miesiąca, możesz to zrobić:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, MMM d, yyyy', 'en-US') Result;
Wynik:
+------------------+ | Result | |------------------| | Tue, Dec 1, 2020 | +------------------+
Nadal określam kulturę, mimo że dokładnie określam, gdzie idzie każdy składnik daty. Powodem, dla którego to robię, jest wyraźne określenie, którego języka użyć. Pominięcie tego argumentu może, ale nie musi powodować problemów, w zależności od używanych języków.
Zaletą niestandardowych formatów dat jest to, że zapewniają dużą elastyczność. Możesz zmieniać komponenty, a pojawią się dokładnie tam, gdzie chcesz.
Sprawdzanie bieżącej sesji
Używając FORMAT()
funkcji, jeśli nie podano argumentu culture, używany jest język bieżącej sesji. Ten język jest ustawiany niejawnie lub jawnie za pomocą SET LANGUAGE
oświadczenie.
Aby uzyskać więcej informacji, oto 3 sposoby uzyskania języka bieżącej sesji w SQL Server (T-SQL).
Zobacz także Jak ustawić bieżący język w SQL Server (T-SQL).