获得一个月的最后一天

使用 DATEADDDATEDIFF 函数,可以返回一个月的最后一个日期。

SELECT DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, '2016-09-23') + 1, 0))
-- 2016-09-30 00:00:00.000

Version >= SQL Server 2012

EOMONTH 函数提供了一种更简洁的方式来返回一个月的最后一个日期,并且有一个可选参数来抵消月份。

SELECT EOMONTH('2016-07-21')        --2016-07-31
SELECT EOMONTH('2016-07-21', 4)     --2016-11-30
SELECT EOMONTH('2016-07-21', -5)    --2016-02-29