Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Anzahl der verbleibenden Tage im aktuellen Monat

Da dies SQL Server 2008 ist, können Sie EOMonth (das in der Version 2012 eingeführt wurde) nicht verwenden.
Sie müssen einige Datumszusätze und Datumsunterschiede vornehmen:

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

Erklärungen:
DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE()) erhält den ersten Tag des aktuellen Monats, die Umhüllung DATEADD fügt einen Monat hinzu und die Verpackung DATEDIFF gibt die Anzahl der Tage zwischen dem aktuellen Datum und dem ersten Datum des nächsten Monats zurück. Deshalb müssen Sie 1 subtrahieren, um die korrekte Anzahl an Tagen zu erhalten.