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.

Transact-SQL-Syntaxkonventionen

Syntax

EOMONTH ( start_date [, month_to_add ] )  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 oder 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 das Hinzufügen der gültigen Datumsbereiche einen Überlauf verursacht, löst EOMONTH einen Fehler aus.

Rückgabetyp

date

Bemerkungen

Die Funktion EOMONTH kann auf SQL Server 2012 (11.x)-Servern und höher remote ausgeführt werden. Sie kann nicht auf Servern mit einer niedrigeren Version als SQL Server 2012 (11.x) remote ausgeführt werden.

Beispiele

A. EOMONTH mit explizitem datetime-Typ

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

Hier ist das Resultset.

Result  
------------  
2011-12-31  
  
(1 row(s) affected)  

B. EOMONTH mit Zeichenfolgenparameter und impliziter Konvertierung

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

Hier ist das Resultset.

Result  
------------  
2011-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/2011 und 12/31/2011 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  
-----------------------  
2011-12-31  
  
(1 row(s) affected)  
  
Next Month  
-----------------------  
2012-01-31  
  
(1 row(s) affected)  
  
Last Month  
-----------------------  
2011-11-30  
  
(1 row(s) affected)