これは SQL Server 2008 であるため、EOMonth (2012 バージョンで導入されたもの) は使用できません。
日付の追加と日付の差分を行う必要があります:
SELECT DATEDIFF(DAY,
GETDATE(),
DATEADD(MONTH,
1,
DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE())
)
) - 1
説明:DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE())
現在の月の最初の日を取得し、ラップ DATEADD
1 か月を追加し、ラッピング DATEDIFF
現在の日付から翌月の最初の日付までの日数を返します。これが、正しい日数を得るために 1 を引く必要がある理由です。