In SQL Server können Sie DAY()
verwenden Funktion, um den „Tag“-Teil eines Datums zurückzugeben. Diese Funktion gibt eine Ganzzahl zurück, die den Tag des Monats darstellt (nicht den Wochentag).
Nachfolgend finden Sie Beispiele zur Verwendung dieser Funktion.
Syntax
Die Syntax sieht so aus:
TAG ( Datum )
Wobei date
ist ein Ausdruck, der in einen der folgenden Datentypen aufgelöst wird:
- Datum
- datetime
- datetimeoffset
- datetime2
- smalldatetime
- Zeit
Dies kann ein Spaltenausdruck, ein Ausdruck, ein Zeichenfolgenliteral oder eine benutzerdefinierte Variable sein.
Beispiel
Hier ist ein einfaches Beispiel dafür, wie es funktioniert:
SELECT SYSDATETIME() AS 'Datum', DAY(SYSDATETIME()) AS 'Tag';
Ergebnis:
Also der DAY()
Funktion konnte den Tag aus datetime2 extrahieren Wert (der von SYSDATETIME()
zurückgegeben wurde Funktion).
Datum als String-Literal bereitgestellt
Hier ist ein Beispiel, in dem das Datum als String-Literal bereitgestellt wird.
SELECT DAY('2019-01-07') AS Result;
Ergebnis:
+----------+| Ergebnis ||----------|| 7 |+----------+
Und hier ist ein Beispiel, wo das Datum in einem anderen Format bereitgestellt wird:
SELECT DAY('07/01/2017') AS Result;
Ergebnis:
+----------+| Ergebnis ||----------|| 1 |+----------+
Es ist jedoch normalerweise am besten, Datumsangaben in solchen Formaten zu vermeiden. Wenn Sie dies tun müssen, müssen Sie die Spracheinstellungen und/oder die Datumsformateinstellungen der aktuellen Sitzung beachten.
Spracheinstellungen
Die Ausgabe des vorherigen Beispiels hängt von den Spracheinstellungen und/oder Datumsformateinstellungen der aktuellen Sitzung ab.
Wenn wir die Sprache einstellen, wird implizit gleichzeitig das Datumsformat eingestellt.
Folgendes passiert, wenn wir dasselbe Datumsargument in zwei verschiedenen Sprachumgebungen bereitstellen.
Britisch
SET LANGUAGE British;SELECT DAY('07/01/2017') AS Result;
Ergebnis:
+----------+| Ergebnis ||----------|| 7 |+----------+
us_English
SET LANGUAGE us_English;SELECT DAY('07/01/2017') AS Result;
Ergebnis:
+----------+| Ergebnis ||----------|| 1 |+----------+
Datumsformateinstellungen
Die Einstellungen für das Datumsformat können die Spracheinstellungen außer Kraft setzen, daher müssen Sie sich auch dieser Einstellung bewusst sein. Beispielsweise könnten wir us_English verwenden für unsere Sprache (die ein Standarddatumsformat von mdy hat ), aber wir könnten das Datumsformat auf dmy überschreiben .
Hier ist ein Beispiel:
us_English – Standard-Datumsformat
Hier stellen wir die Sprache auf us_English ein , wodurch das Datumsformat implizit auf myy gesetzt wird .
SET LANGUAGE us_English;SELECT DAY('07/01/2017') AS Result;
Ergebnis:
+----------+| Ergebnis ||----------|| 1 |+----------+
us_English – Datumsformat überschreiben
Hier stellen wir die Sprache auf us_English ein (was implizit das Datumsformat festlegt), aber dann setzen wir das Datumsformat explizit auf dmy . Dies überschreibt das Datumsformat, das implizit festgelegt wurde, als wir die Sprache eingestellt haben.
SPRACHE EINSTELLEN us_English;DATUMSFORMAT EINSTELLEN dmy;TAG('07/01/2017') ALS Ergebnis AUSWÄHLEN;
Ergebnis:
+----------+| Ergebnis ||----------|| 7 |+----------+
Geben Sie den Tagesnamen zurück
Wenn Sie den Tagesnamen (im Gegensatz zur Tagesnummer) zurückgeben müssen, lesen Sie 3 Möglichkeiten zum Abrufen des Tagesnamens aus einem Datum in SQL Server.