Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Número de dias restantes no mês atual


Como este é o sql server 2008, você não pode usar o EOMonth (que foi introduzido na versão 2012).
Você precisa fazer algumas adições e diferenças de data:
SELECT DATEDIFF(DAY, 
                GETDATE(),
                DATEADD(MONTH, 
                        1, 
                        DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE()) 
                       ) 
               ) - 1 

explicações:
DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE()) obtém o primeiro dia do mês atual, o encapsulamento DATEADD adiciona um mês e o encapsulamento DATEDIFF retorna o número de dias entre a data atual e a primeira data do próximo mês. É por isso que você precisa subtrair 1 para obter o número correto de dias.