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í.