SQL根据当前日期获取相应的日期
1、获取上个月的第一天与最后一天日期
SELECT DATEADD(m, -1,DATEADD(mm,DATEDIFF(mm,0,getdate()),0)) 上月第一天
SELECT DATEADD(s, -1,DATEADD(mm,DATEDIFF(mm,0,getdate()),0)) 上月最后一天
2、获取本月第一天与最后一天日期
SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0) 本月第一天
SELECT DATEADD(s, -1,DATEADD(mm,DATEDIFF(mm,-1,getdate()),0)) 本月最后天
3、获取本周的第一天与最后一天日期(周一为第一天)
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) 本周第一天
SELECT DATEADD(s, -1,DATEADD(wk, DATEDIFF(wk,0,getdate()), 7) ) 本周最后一天
4、获取去年上个月第一天与最后一天日期
SELECT DATEADD(YEAR,-1,DATEADD(m, -1,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))) 去年上月第一天
SELECT DATEADD(YEAR,-1,DATEADD(s, -1,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))) 去年上月最后一天
5、获取去年本月第一天与最后一天日期
SELECT DATEADD(YEAR,-1,DATEADD(mm,DATEDIFF(mm,0,getdate()),0)) 去年本月第一天
SELECT DATEADD(YEAR,-1,DATEADD(s, -1,DATEADD(mm,DATEDIFF(mm,-1,getdate()),0))) 去年本月最后天
6、获取去年本周的第一天和最后一天日期
SELECT DATEADD(wk, DATEDIFF(wk,0,DATEADD(YEAR,-1,getdate())), 0) 去年本周第一天
SELECT DATEADD(s, -1,DATEADD(wk, DATEDIFF(wk,0,DATEADD(YEAR,-1,getdate())), 7) ) 去年本周最后一天
7、获取今年的第一天和最后一天日期
SELECT dateadd(ms,0,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)) 当本年第一天
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0)) 当本年最后一天
6、获取去年的第一天和最后一天日期
select DATEADD(yy,-1, DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)) 去年第一天
select DATEADD(s,-1, DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)) 去年最后一天