Để tìm ra ngày cuối cùng của tháng hiện tại, bạn chỉ việc lấy ngày đầu tiên của tháng sau rồi bớt đi 1 ngày:
SELECT DATEADD(d,-1, DATEADD(mm, DATEDIFF(mm, 0 ,GETDATE())+1, 0))
Giải thích:
– Lệnh DATEDIFF trong cùng tính số tháng tính từ thời điểm bắt đầu (01/01/1900) và tăng lên 1:
DATEDIFF(mm, 0 ,GETDATE())+1)
– Tới lệnh DATEADD cộng số tháng đó vào thời điểm 01/01/1900, sẽ được ngày đầu của tháng sau:
DATEADD(mm, DATEDIFF(mm, 0, GETDATE())+1,0))
– Và lệnh DATEADD ngoài cùng trừ thời điểm đó đi 1 ngày.
Nguồn: sqlviet[dot]com