Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Numero di giorni rimasti nel mese corrente

Poiché questo è SQL Server 2008, non puoi utilizzare EOMonth (che è stato introdotto nella versione 2012).
Devi aggiungere alcune date e differenze di data:

SELECT DATEDIFF(DAY, 
                GETDATE(),
                DATEADD(MONTH, 
                        1, 
                        DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE()) 
                       ) 
               ) - 1 

spiegazioni:
DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE()) ottiene il primo giorno del mese corrente, il wrapping DATEADD aggiunge un mese e il wrapping DATEDIFF restituisce il numero di giorni tra la data corrente e la prima data del mese successivo. Questo è il motivo per cui devi sottrarre 1 per ottenere il numero corretto di giorni.