Sql获取周、月、年的首尾时间。

SELECT DATEADD(ww,DATEDIFF(ww,0,getdate()),0) -- 本周周一
SELECT DATEADD(dd,-1,DATEADD(ww,DATEDIFF(ww,0,getdate())+1,0)) -- 本周周末
SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0) -- 本月月初
SELECT DATEADD(dd,-1,DATEADD(mm,DATEDIFF(mm,0,getdate())+1,0)) -- 本月月末
SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()) - 1,0) -- 上月月初
SELECT DATEADD(dd,-1,DATEADD(mm,DATEDIFF(mm,0,getdate()),0)) -- 上月月末
SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0) -- 本年年初
SELECT DATEADD(dd,-1,DATEADD(yy,DATEDIFF(yy,0,getdate()) + 1,0)) -- 本年年末
SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()) - 1,0) -- 去年年初
SELECT DATEADD(dd,-1,DATEADD(yy,DATEDIFF(yy,0,getdate()),0)) -- 去年年末

思路是利用datediff函数获取指定日期与1900-01-01 00:00:00的相应差值来计算得到目标日期。

原文地址:https://www.cnblogs.com/lbhqq/p/6016048.html