Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Nombre de jours restants dans le mois en cours

Comme il s'agit de SQL Server 2008, vous ne pouvez pas utiliser EOMonth (qui a été introduit dans la version 2012).
Vous devez faire des ajouts et des différences de date :

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

explications :
DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE()) obtient le premier jour du mois en cours, l'emballage DATEADD ajoute un mois, et l'emballage DATEDIFF renvoie le nombre de jours entre la date actuelle et la première date du mois suivant. C'est pourquoi vous devez soustraire 1 pour obtenir le nombre correct de jours.