Beim Formatieren eines Datums mit FORMAT()
Funktion in SQL Server, wird das Datum entsprechend der Sprache Ihrer lokalen Sitzung formatiert. Sie können dies jedoch überschreiben, indem Sie eine zu verwendende Kultur angeben oder ein benutzerdefiniertes Datumsformat verwenden.
Dieser Artikel zeigt, wie Sie explizit ein deutsches Datumsformat angeben, indem Sie das optionale „culture“-Argument von FORMAT()
verwenden Funktion. Es zeigt auch, wie Sie Ihr eigenes benutzerdefiniertes Datumsformat verwenden können, wenn dies wünschenswerter ist.
Beispiel 1 – Kurzes deutsches Datumsformat
Um explizit festzulegen, dass ein Datum im deutschen Format angezeigt werden soll, verwenden Sie de-de
als drittes Argument. Dieses (optionale) dritte Argument gibt an, welche Kultur verwendet werden soll.
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'd', 'de-de') Result;
Ergebnis:
+------------+ | Result | |------------| | 01.12.2020 | +------------+
In diesem Fall habe ich ein kleines d
verwendet als zweites Argument. Dadurch ergibt sich ein relativ kurzes Datumsformat, bei dem Tag und Monat als Zahlen dargestellt werden.
Und da wir das deutsche Format verwenden, kommt der Tag vor dem Monat und jede Datumskomponente wird durch Punkte getrennt.
Beispiel 2 – Langes deutsches Datumsformat
Sie können das zweite Argument in einen Großbuchstaben D
ändern um zu einem längeren Datumsformat mit ausgeschriebenem Monat zu führen:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'D', 'de-de') Result;
Ergebnis:
+----------------------------+ | Result | |----------------------------| | Dienstag, 1. Dezember 2020 | +----------------------------+
Beispiel 3 – Benutzerdefiniertes deutsches Datumsformat
Sie können bei Bedarf auch ein benutzerdefiniertes Datumsformat verwenden. Auf diese Weise können Sie genau angeben, wie und wohin jede Datumskomponente geht.
Beispiel:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy', 'de-de') Result;
Ergebnis:
+------------------+ | Result | |------------------| | Di, 1. Dez, 2020 | +------------------+
In diesem Fall verwende ich immer noch das Kulturargument, um explizit anzugeben, welche Sprache verwendet werden soll.
Mein System verwendet derzeit US-Englisch. Wenn ich also das Kulturargument in diesem Beispiel weglasse, erhalte ich Folgendes:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy') Result;
Ergebnis:
+-------------------+ | Result | |-------------------| | Tue, 1. Dec, 2020 | +-------------------+
Ihre aktuelle Sitzung überprüfen
Bei Verwendung des FORMAT()
Wenn das Kulturargument nicht angegeben wird, wird die Sprache der aktuellen Sitzung verwendet. Diese Sprache wird entweder implizit oder explizit durch Verwendung von SET LANGUAGE
gesetzt Aussage.
Weitere Informationen finden Sie hier:3 Möglichkeiten, die Sprache der aktuellen Sitzung in SQL Server (T-SQL) abzurufen.
Siehe auch Festlegen der aktuellen Sprache in SQL Server (T-SQL).