sql >> Databáze >  >> RDS >> Sqlserver

Počet zbývajících dní v aktuálním měsíci

Vzhledem k tomu, že se jedná o sql server 2008, nemůžete použít EOMonth (který byl představen ve verzi 2012).
Musíte provést přidání dat a rozdíly dat:

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

vysvětlení:
DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE()) získá první den aktuálního měsíce, obal DATEADD přidá jeden měsíc a obal DATEDIFF vrátí počet dní mezi aktuálním datem a prvním datem následujícího měsíce. To je důvod, proč musíte odečíst 1, abyste získali správný počet dní.



  1. Efektivnější systém hierarchie

  2. 'PDOException' Chyba syntaxe nebo narušení přístupu:1064 Máte chybu v syntaxi SQL; šek

  3. Jak vyřešit org.hibernate.QueryException:Ne všechny jmenované parametry byly nastaveny jako chyba?

  4. Chyba SQL:ORA-01861:literál neodpovídá formátovacímu řetězci 01861