O SQL Server Denali introduz uma nova função datetime a EOMONTH(). A EOMONTH() retorna o último dia do mês para a data dada. Ele também aceita um argumento opcional que é um número inteiro para adicionar/remover meses a partir da data especificada.
Sintaxe:
EOMONTH( start_date [, months_to_add] )
SELECT DATEADD(s, -1, DATEADD(mm, DATEDIFF(m, 0, GETDATE()) + 1, 0))
AS 'Último dia do mês', --Versões antigas
EOMONTH(GETDATE())
AS 'Último dia do mês',
DATEADD(s, -1, DATEADD(day, 1, EOMONTH(GETDATE())))
AS 'Último dia do mês'
--Parte do tempo 23:59:59
Último dia do mês Último dia do mês Último dia do mês ———————– ———————– ———————– 2011-08-31 23:59:59.000 2011-08-31 00:00:00.000 2011-08-31 23:59:59.000
SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
AS 'Primeiro dia do mês', --Versões antigas
DATEADD(day, 1, EOMONTH(GETDATE(), -1))
AS 'Primeiro dia do mês'
Primeiro dia do mês Primeiro dia do mês ———————– ———————– 2011-08-01 00:00:00.000 2011-08-01 00:00:00.000
Autor/Fonte: SQL & Me
Comente e interaja!