EOMONTH (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Esta función devuelve el último día del mes que contiene la fecha especificada, con un desplazamiento opcional.

Sugerencia

Puede usar DATETRUNC para calcular el inicio del mes.

Convenciones de sintaxis de Transact-SQL

Sintaxis

EOMONTH ( start_date [ , month_to_add ] )

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

start_date

Expresión de fecha que especifica la fecha para la que se devuelve el último día del mes.

month_to_add

Expresión opcional de tipo entero que especifica el número de meses que se van a agregar a start_date.

Si el argumento, month_to_add tiene un valor, EOMONTH agrega el número especificado de meses a start_date y, después, devuelve el último día del mes de la fecha resultante. Si esta adición desborda el intervalo válido de fechas, EOMONTH genera un error.

Tipos de valores devueltos

date

Comentarios

La EOMONTH función puede remoto a instancias que ejecutan SQL Server 2012 (11.x) y versiones posteriores. No se puede remoto a instancias con una versión anterior a SQL Server 2012 (11.x).

Ejemplos

A. EOMONTH con un tipo datetime explícito

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

El conjunto de resultados es el siguiente:

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

(1 row(s) affected)

B. EOMONTH con parámetro de cadena y conversión implícita

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

El conjunto de resultados es el siguiente:

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

(1 row(s) affected)

C. EOMONTH con y sin el parámetro month_to_add

Los valores que se muestran en estos conjuntos de resultados reflejan una fecha de ejecución entre 12/01/2022 y 12/31/2022, ambos incluidos.

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

El conjunto de resultados es el siguiente:

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)