EOMONTH (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)

Essa função retorna o último dia do mês que contém uma data especificada com um deslocamento opcional.

Dica

Você pode usar DATETRUNC para calcular o início do mês.

Convenções de sintaxe de Transact-SQL

Sintaxe

EOMONTH ( start_date [ , month_to_add ] )

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

start_date

Uma expressão de data que especifica a data para a qual retornar o último dia do mês.

month_to_add

Uma expressão de inteiro opcional que especifica o número de meses a serem adicionados a start_date.

Se o argumento month_to_add tiver um valor, EOMONTH adicionará o número de meses especificado a start_date e, em seguida, retornará o último dia do mês para a data resultante. Se essa adição estourar o intervalo válido de datas, gerará EOMONTH um erro.

Tipos de retorno

date

Comentários

A EOMONTH função pode ser remota para instâncias que executam o SQL Server 2012 (11.x) e versões posteriores. Ele não pode ser remoto para instâncias com uma versão anterior ao SQL Server 2012 (11.x).

Exemplos

a. EOMONTH com tipo datetime explícito

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

Este é o conjunto de resultados.

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

(1 row(s) affected)

B. EOMONTH com parâmetro de cadeia de caracteres e conversão implícita

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

Este é o conjunto de resultados.

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

(1 row(s) affected)

C. EOMONTH com e sem o parâmetro month_to_add

Os valores mostrados nesses conjuntos de resultados refletem uma data de execução entre 12/01/2022 e 12/31/2022 inclusive.

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

Este é o conjunto de resultados.

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

(1 row(s) affected)

Next Month
-----------------------
2012-01-31

(1 row(s) affected)

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

(1 row(s) affected)