Bạn có thể làm như sau:
DECLARE @SelectedDate DATETIME = '2016.01.30'
SELECT
DATEADD(DAY, -1 - (DAY(EOMONTH(@SelectedDate)) - DAY(@SelectedDate)), DATEADD(MONTH, v.m, DATEFROMPARTS(YEAR(@SelectedDate), 1, 1)))
FROM
(VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11), (12)) AS v(m)
Còn bao nhiêu ngày nữa là hết tháng. Số ngày tìm thấy được xóa khỏi các tháng khác.
DAY(EOMONTH(@SelectedDate)
(31) - DAY(@SelectedDate)
(30) =left days
(1)
Kết quả:
2016-01-30
2016-02-28
2016-03-30
2016-04-29
2016-05-30
2016-06-29
2016-07-30
2016-08-30
2016-09-29
2016-10-30
2016-11-29
2016-12-30