sql >> Databasteknik >  >> RDS >> Sqlserver

Antal dagar kvar i innevarande månad

Eftersom detta är sql server 2008 kan du inte använda EOMonth (som introducerades i 2012 års version).
Du måste göra några datumtillägg och datumdiffar:

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

förklaringar:
DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE()) får den första dagen i den aktuella månaden, omslutningen DATEADD lägger till en månad, och omslutningen DATEDIFF returnerar antalet dagar mellan det aktuella datumet och det första datumet i nästa månad. Det är därför du måste subtrahera 1 för att få rätt antal dagar.



  1. När prestandan för Distinct och Group By är olika?

  2. Bästa sättet att hantera LOB i Oracle-distribuerade databaser

  3. Hur tar man bort flikar i början och slutet av varchar-fältet i MySQL?

  4. java.security.AccessControlException:åtkomst nekad (java.security.SecurityPermission authProvider.SunMSCAPI)