Vì đây là sql server 2008 nên bạn không thể sử dụng EOMonth (đã được giới thiệu trong phiên bản 2012).
Bạn phải thực hiện một số bổ sung ngày tháng và khác biệt ngày tháng:
SELECT DATEDIFF(DAY,
GETDATE(),
DATEADD(MONTH,
1,
DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE())
)
) - 1
giải thích:
DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE())
lấy ngày đầu tiên của tháng hiện tại, gói DATEADD
thêm một tháng và gói DATEDIFF
trả về số ngày giữa ngày hiện tại và ngày đầu tiên của tháng tiếp theo. Đây là lý do tại sao bạn cần cấu trúc con 1 để có số ngày chính xác.