Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

DAY()-Beispiele in SQL Server (T-SQL)

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:

+-------------------------------------+-------+| Datum | Tag ||--------------------------------------+-------|| 2018-06-18 00:20:22.1284540 | 18 |+-------------------------------------+-------+

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.