以“2019-05-01”为例
1.获取本月第一天
--获取当月第一天
select dateadd(dd,-day('2019-05-01')+1,'2019-05-01')
2.获取本月最后一天
--获取当月最后一天
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,'2019-05-01')+1, 0))
3.获取上月最后一天
--获取上个月最后一天
SELECT DATEADD(ms,-3,DATEADD(mm, DATEDIFF(m,0,'2019-05-01'), 0))
4.获取下月最后一天
--获取下个月最后一天
SELECT DATEADD(ms,-3,DATEADD(mm, DATEDIFF(m,0,DATEADD(MONTH,2,'2019-05-01')), 0))
5.获取下月第一天
--下月1号
select CONVERT(varchar(7), dateadd(mm,1,'2019-05-01') , 120) + '-01'
6.月份差
-- 月份差
select datediff(mm,'2019-05-1','2019-09-1')--4
7.某个日期加几月
---获取某个日期加2月
select DATEADD(MONTH,2,'2019-01-01')