EOMONTH (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Diese Funktion gibt den letzten Tag des Monats, der das angegebene Datum enthält, mit einer optionalen Abweichung zurück.

Tipp

Sie können DATETRUNC verwenden, um den Anfang des Monats zu berechnen.

Transact-SQL-Syntaxkonventionen

Syntax

EOMONTH ( start_date [ , month_to_add ] )

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

start_date

Ein Datumsausdruck, der das Datum angibt, für das der letzte Tag des Monats zurückgegeben werden soll.

month_to_add

Ein optionaler ganzzahliger Ausdruck, der die Anzahl der Monate angibt, die zu start_date hinzugefügt werden sollen.

Wenn das Argument month_to_add über einen Wert verfügt, fügt EOMONTH die angegebene Anzahl von Monaten zu start_date hinzu und gibt dann den letzten Tag des Monats für das sich ergebende Datum zurück. Wenn diese Addition den gültigen Datumsbereich überläuft, EOMONTH wird ein Fehler ausgelöst.

Rückgabetypen

date

Hinweise

Die EOMONTH Funktion kann remote zu Instanzen mit SQL Server 2012 (11.x) und höheren Versionen führen. Es kann keine Remoteverbindung mit Instanzen mit einer Version vor SQL Server 2012 (11.x) herstellen.

Beispiele

A. EOMONTH mit explizitem datetime-Typ

DECLARE @date DATETIME = '12/1/2022';
SELECT EOMONTH ( @date ) AS Result;
GO

Hier ist das Resultset.

Result
------------
2022-12-31

(1 row(s) affected)

B. EOMONTH mit Zeichenfolgenparameter und impliziter Konvertierung

DECLARE @date VARCHAR(255) = '12/1/2022';
SELECT EOMONTH ( @date ) AS Result;
GO

Hier ist das Resultset.

Result
------------
2022-12-31

(1 row(s) affected)

C. EOMONTH mit und ohne den month_to_add-Parameter

Die in diesen Resultsets gezeigten Werte stellen ein Ausführungsdatum zwischen 12/01/2022 und 12/31/2022 einschließlich dar.

DECLARE @date DATETIME = GETDATE();
SELECT EOMONTH ( @date ) AS 'This Month';
SELECT EOMONTH ( @date, 1 ) AS 'Next Month';
SELECT EOMONTH ( @date, -1 ) AS 'Last Month';
GO

Hier ist das Resultset.

This Month
-----------------------
2022-12-31

(1 row(s) affected)

Next Month
-----------------------
2022-01-31

(1 row(s) affected)

Last Month
-----------------------
2022-11-30

(1 row(s) affected)