Ponieważ jest to serwer sql 2008, nie możesz używać EOMonth (który został wprowadzony w wersji 2012).
Musisz dodać i zmienić datę:
SELECT DATEDIFF(DAY,
GETDATE(),
DATEADD(MONTH,
1,
DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE())
)
) - 1
objaśnienia:DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE())
pobiera pierwszy dzień bieżącego miesiąca, opakowanie DATEADD
dodaje jeden miesiąc, a opakowanie DATEDIFF
zwraca liczbę dni między bieżącą datą a pierwszą datą następnego miesiąca. Dlatego musisz odjąć 1, aby uzyskać prawidłową liczbę dni.