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

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

In SQL Server können Sie MONTH() verwenden Funktion, um den „Monat“-Teil eines Datums zurückzugeben. Dies wird als Ganzzahl zurückgegeben (nicht der Monatsname).

Nachfolgend finden Sie Beispiele zur Verwendung dieser Funktion.

Syntax

Die Syntax lautet wie folgt:

MONTH ( date )

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 'Date',
   MONTH(SYSDATETIME()) AS 'Month';

Ergebnis:

+-----------------------------+---------+
| Date                        | Month   |
|-----------------------------+---------|
| 2018-06-18 00:39:06.7954314 | 6       |
+-----------------------------+---------+

Also der MONTH() Funktion konnte den Monat 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 MONTH('2019-01-07') AS Result;

Ergebnis:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Und hier ist ein Beispiel, wo das Datum in einem anderen Format bereitgestellt wird:

SELECT MONTH('07/01/2017') AS Result;

Ergebnis:

+----------+
| Result   |
|----------|
| 7        |
+----------+

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 MONTH('07/01/2017') AS Result;

Ergebnis:

+----------+
| Result   |
|----------|
| 1        |
+----------+

us_English

SET LANGUAGE us_English;
SELECT MONTH('07/01/2017') AS Result;

Ergebnis:

+----------+
| Result   |
|----------|
| 7        |
+----------+

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 MONTH('07/01/2017') AS Result;

Ergebnis:

+----------+
| Result   |
|----------|
| 7        |
+----------+

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.

SET LANGUAGE us_English;
SET DATEFORMAT dmy;
SELECT MONTH('07/01/2017') AS Result;

Ergebnis:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Geben Sie den Monatsnamen zurück

Wenn Sie den Monatsnamen (im Gegensatz zur Monatsnummer) zurückgeben müssen, lesen Sie 3 Möglichkeiten, den Monatsnamen aus einem Datum in SQL Server abzurufen.