Podczas formatowania daty za pomocą FORMAT()
w SQL Server, data zostanie sformatowana zgodnie z językiem sesji lokalnej. Można to jednak zastąpić, określając kulturę do użycia lub używając niestandardowego formatu daty.
W tym artykule pokazano, jak jawnie określić niemiecki format daty za pomocą opcjonalnego argumentu „culture” funkcji FORMAT()
funkcjonować. Pokazuje również, jak używać własnego niestandardowego formatu daty, jeśli jest to bardziej pożądane.
Przykład 1 – krótki niemiecki format daty
Aby wyraźnie określić, że data powinna być wyświetlana w formacie niemieckim, użyj de-de
jako trzeci argument. Ten (opcjonalny) trzeci argument określa, której kultury użyć.
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'd', 'de-de') Result;
Wynik:
+------------+ | Result | |------------| | 01.12.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 formatu niemieckiego, dzień poprzedza miesiąc, a każdy składnik daty jest oddzielony kropkami.
Przykład 2 – Długi niemiecki format daty
Możesz zmienić drugi argument na wielkie D
aby uzyskać dłuższą datę, z podanym miesiącem:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'D', 'de-de') Result;
Wynik:
+----------------------------+ | Result | |----------------------------| | Dienstag, 1. Dezember 2020 | +----------------------------+
Przykład 3 – Niestandardowy niemiecki format daty
W razie potrzeby możesz również użyć niestandardowego formatu daty. Dzięki temu możesz dokładnie określić, w jaki sposób i gdzie znajduje się każdy składnik daty.
Przykład:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy', 'de-de') Result;
Wynik:
+------------------+ | Result | |------------------| | Di, 1. Dez, 2020 | +------------------+
W tym przypadku nadal używam argumentu culture, aby wyraźnie określić, którego języka użyć.
Mój system używa obecnie amerykańskiego angielskiego, więc jeśli pominę argument kultury z tego przykładu, otrzymam:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy') Result;
Wynik:
+-------------------+ | Result | |-------------------| | Tue, 1. Dec, 2020 | +-------------------+
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).