sql >> Base de Datos >  >> RDS >> Sqlserver

Número de días restantes en el mes actual

Dado que este es el servidor sql 2008, no puede usar EOMonth (que se introdujo en la versión 2012).
Tiene que hacer algunas adiciones de fecha y diferencias de fecha:

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

explicaciones:
DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE()) obtiene el primer día del mes actual, el envoltorio DATEADD agrega un mes, y el envoltorio DATEDIFF devuelve el número de días entre la fecha actual y la primera fecha del mes siguiente. Por eso es necesario restar 1 para obtener el número correcto de días.