獲得一個月的最後一天

使用 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