Share via


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

No SQL Server 2022 (16.x) e versões posteriores, 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/2024';

SELECT EOMONTH(@date) AS Result;
GO

Este é o conjunto de resultados.

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

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

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

SELECT EOMONTH(@date) AS Result;
GO

Este é o conjunto de resultados.

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

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/2024 e 12/31/2024 inclusive.

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

Este é o conjunto de resultados.

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

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

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