In SQL Server können Sie das T-SQL FORMAT()
verwenden Funktion zum Formatieren von Datum und/oder Uhrzeit. Geben Sie einfach zwei Argumente an; das Datum/die Uhrzeit und das zu verwendende Format.
Das Format wird als Formatstring geliefert. Ein Formatstring definiert, wie die Ausgabe formatiert werden soll.
Das FORMAT()
Die Funktion akzeptiert auch ein optionales „Kultur“-Argument, mit dem Sie eine Sprache/ein Gebietsschema angeben können, dem die Ergebnisse entsprechen sollen.
Einfaches Beispiel
Hier ist ein einfaches Beispiel für die Verwendung von FORMAT()
Funktion zum Formatieren eines Datums.
Rohdatum
Erstens, so sieht das Rohdatum aus. Wenn wir die folgende Anweisung ausführen:
SELECT GETDATE();
Wir erhalten ein Ergebnis, das in etwa so aussieht:
2018-05-03 02:36:54.480
Formatiertes Datum
Jetzt können wir das FORMAT()
verwenden Funktion, um dieses Datum und diese Uhrzeit in unser bevorzugtes Format zu formatieren. Zum Beispiel könnten wir dies tun:
SELECT FORMAT( GETDATE(), 'D');
Was dazu führt:
Thursday, May 3, 2018
Dies ist nur eines von vielen Formaten, die wir wählen könnten. Hier ist noch eins:
SELECT FORMAT( GETDATE(), 'd');
Was dazu führt:
5/3/2018
Die tatsächlichen Ergebnisse variieren je nach verwendeter Kultur. Standardmäßig wird die Sprache der aktuellen Sitzung verwendet, aber Sie können dies auch mit einem dritten Argument („Kultur“) überschreiben.
Ein Gebietsschema festlegen
Wir könnten dem obigen Code ein drittes („Kultur“)-Argument hinzufügen, um das Gebietsschema zu bestimmen, das für das Datumsformat verwendet werden soll.
So könnten wir zum Beispiel Folgendes tun:
SELECT FORMAT( GETDATE(), 'd', 'en-gb');
Was dazu führt:
03/05/2018
Hier ist ein weiteres Beispiel:
SELECT FORMAT( GETDATE(), 'd', 'zh-cn');
Was dazu führt:
2018/5/3
Wenn die Kultur Argument nicht angegeben, wird die Sprache der aktuellen Sitzung verwendet.
So finden Sie die Sprache der aktuellen Sitzung und stellen sie wie folgt ein.
Beachten Sie, dass die aktuelle Sprache normalerweise mit der Standardsprache des Benutzers identisch ist, dies jedoch möglicherweise nicht der Fall ist, wenn der Benutzer die aktuelle Sprache mit SET LANGUAGE
geändert hat . In jedem Fall können Sie auch herausfinden, was die Standardsprache ist.
Wie Sie sich vorstellen können, könnten Sie je nach Ihrer aktuellen Sprache oder dem Wert eines „kulturellen“ Arguments ganz unterschiedliche Ergebnisse erzielen. Weitere Beispiele finden Sie unter Wie sich Spracheinstellungen auf Ihre FORMAT()-Ergebnisse auswirken können.
Monat/Woche/Jahr extrahieren
Sie können das FORMAT()
verwenden Funktion, um nur den Monatsteil des Datums oder die Woche oder das Jahr nach Bedarf zurückzugeben.
Beachten Sie, dass hierbei zwischen Groß- und Kleinschreibung unterschieden wird. Beispiel:MMM
formatiert den Monat anders als mmm
.
Monat
Beispielcode für die Rückgabe des Monatsteils:
SELECT FORMAT( GETDATE(), 'MMM');
Ergebnis:
May
Jahr
Beispielcode für die Rückgabe des Jahresteils:
SELECT FORMAT( GETDATE(), 'yyyy');
Ergebnis:
2018
Tag
Beispielcode für die Rückgabe des Tagesteils:
SELECT FORMAT( GETDATE(), 'dddd');
Ergebnis:
Thursday
Zeit extrahieren
Sie können auch das FORMAT()
verwenden Funktion, um die Uhrzeit in einem bestimmten Format zurückzugeben.
Hier ist ein Beispiel:
SELECT FORMAT( GETDATE(), 'hh.mm');
Ergebnis:
03.37
Der AM/PM-Bezeichner
Sie können auch tt
hinzufügen um die AM/PM-Bezeichnung aufzunehmen:
SELECT FORMAT( GETDATE(), 'hh.mm tt');
Ergebnis:
03.37 AM
Formatzeichenfolgen kombinieren
Sie können diese Formatzeichenfolgen auch kombinieren, um Ihr eigenes benutzerdefiniertes Datumsformat bereitzustellen. Beispiel:
SELECT FORMAT( GETDATE(), 'hh.mm tt dddd, dd MMMM, yyyy');
Ergebnis:
03.41 AM Thursday, 03 May, 2018
Referenz für Datums- und Uhrzeitformate
Die folgenden Artikel enthalten alle Formatbezeichner für Datum und Uhrzeit, die mit FORMAT()
verwendet werden können Funktion in SQL Server, zusammen mit T-SQL-Beispielen:
- Standardformatzeichenfolgen für Datum und Uhrzeit
- Benutzerdefinierte Formatzeichenfolgen für Datum und Uhrzeit
Dies sind die gleichen Datums- und Zeitformatbezeichner, die von .NET Framework unterstützt werden (das FORMAT()
Funktion basiert auf dem .NET Framework).
Referenz für numerische Formatspezifizierer
Die folgenden Artikel enthalten alle numerischen Formatbezeichner, die Sie mit FORMAT()
verwenden können Funktion (z.B. zum Formatieren von Zahlen):
- Standardzeichenfolgen für numerische Formate
- Benutzerdefinierte numerische Formatzeichenfolgen
Dies sind dieselben numerischen Formatbezeichner, die von .NET Framework unterstützt werden.
Andere Datumsfunktionen
T-SQL enthält auch eine Reihe anderer Funktionen, die Ihnen helfen, Teile aus Datumsangaben zu extrahieren. Dazu gehören Funktionen wie DAY()
, MONTH()
, YEAR()
, DATEPART()
, und DATENAME()
.