EOMÅNAD (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-databas i Microsoft Fabric

Denna funktion returnerar den sista dagen i månaden som innehåller ett angivet datum, med en valfri offset.

Tips/Råd

I SQL Server 2022 (16.x) och senare versioner kan du använda DATETRUNC för att räkna ut månadens början.

Transact-SQL syntaxkonventioner

Syntax

EOMONTH ( start_date [ , month_to_add ] )

Arguments

start_date

Ett datumuttryck som anger vilket datum som ska returneras till månadens sista dag.

month_to_add

Ett valfritt heltalsuttryck som specificerar antalet månader som ska läggas till start_date.

Om month_to_add-argumentet har ett värde, EOMONTH lägger den till det angivna antalet månader till start_date och returnerar sedan månadens sista dag för det resulterande datumet. Om denna addition överskrider det giltiga datumintervallet, uppstår EOMONTH ett fel.

Returtyper

date

Anmärkningar

Funktionen EOMONTH kan fjärransluta till instanser som kör SQL Server 2012 (11.x) och senare versioner. Den kan inte fjärransluta till instanser med en version före SQL Server 2012 (11.x).

Examples

A. EOMONTH med explicit datum-tidstyp

DECLARE @date DATETIME = '12/1/2024';

SELECT EOMONTH(@date) AS Result;
GO

Här är resultatet.

Result
------------
2024-12-31

B. EOMONTH med strängparameter och implicit konvertering

DECLARE @date VARCHAR(255) = '12/1/2024';

SELECT EOMONTH(@date) AS Result;
GO

Här är resultatet.

Result
------------
2024-12-31

C. EOMONTH med och utan parametern month_to_add

Värdena som visas i dessa resultatuppsättningar speglar ett exekveringsdatum mellan och inklusive 12/01/2024 och 12/31/2024.

DECLARE @date DATETIME = '2024-12-31';

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

Här är resultatet.

This Month
-----------------------
2024-12-31

Next Month
-----------------------
2025-01-31

Last Month
-----------------------
2024-11-30