SQL Server获取本周、上周、本月、上月的开始时间和结束时间

整理下SQL Server获取本周、上周、本月、上月的开始时间和结束时间等格式的查询方法,其他时间格式会持续更新。

DECLARE @ThisWeekStartTime NVARCHAR(100),@ThisWeekEndTime NVARCHAR(100),--本周
            @LastWeekStartTime NVARCHAR(100),@LastWeekEndTime NVARCHAR(100),--上周
            @ThisMonthStartTime NVARCHAR(100),@ThisMonthEndTime  NVARCHAR(100),--本月
            @LastMonthSartTime NVARCHAR(100),@LastMonthEndTime NVARCHAR(100),--上月
            @LastestHalfYearStartTime NVARCHAR(100),@LastestHalfYearEndTime NVARCHAR(100),--近半年
            @LastestOneYearStartTime NVARCHAR(100),@LastestOneYearEndTime NVARCHAR(100)--近一年
            
SELECT @ThisWeekStartTime= CONVERT(NVARCHAR(10), dateadd(wk, datediff(wk,0,dateadd(dd, -1, getdate()) ), 0),121)--本周开始时间
SELECT @ThisWeekEndTime= CONVERT(NVARCHAR(10), dateadd(wk, datediff(wk,0,dateadd(dd, -1, getdate()) ), 6),121)--本周结束时间

SELECT @LastWeekStartTime=  CONVERT(NVARCHAR(10),dateadd(wk, datediff(wk,0,dateadd(dd, -7, getdate()) ), 0),121)--上周开始时间
SELECT @LastWeekEndTime= CONVERT(NVARCHAR(10), dateadd(wk, datediff(wk,0,dateadd(dd, -7, getdate()) ), 6),121)--上周结束时间
 
SELECT @ThisMonthStartTime=CONVERT(NVARCHAR(10),dateadd(dd,-day(getdate())+1,getdate()),121)--本月开始时间
SELECT @ThisMonthEndTime=CONVERT(NVARCHAR(10),dateadd(dd,-day(getdate()),dateadd(m,1,getdate())),121)--本月结束时间

SELECT @LastMonthSartTime=CONVERT(NVARCHAR(10),dateadd(dd,-day(dateadd(month,-1,getdate()))+1,dateadd(month,-1,getdate())),121)--上月开始时间
SELECT @LastMonthEndTime= CONVERT(NVARCHAR(10), dateadd(dd,-day(getdate()),getdate()),121) --上月结束时间

SELECT @LastestHalfYearStartTime= CONVERT(NVARCHAR(10),  dateadd(dd,-day(dateadd(month,-6,getdate()))+1,dateadd(month,-6,getdate())) ,121)--近半年开始时间
SELECT @LastestHalfYearEndTime=CONVERT(NVARCHAR(10), dateadd(dd,-day(getdate()),getdate()),121)--近半年结束时间

SELECT @LastestOneYearStartTime= CONVERT(NVARCHAR(10), dateadd(dd,-day(dateadd(month,-12,getdate()))+1,dateadd(month,-12,getdate())) ,121)--近一年开始时间
SELECT @LastestOneYearEndTime=CONVERT(NVARCHAR(10), dateadd(dd,-day(getdate()),getdate()),121)--近一年结束时间

SELECT getdate() --当前时间
SELECT dateadd(week,datediff(week,0,getdate()),0) --当前时间周的起始日期(以周一为例)
SELECT dateadd(week,-1,dateadd(week,datediff(week,0,getdate()),0)) --上周起始
SELECT dateadd(week,-2,dateadd(week,datediff(week,0,getdate()),0)) --上上周起始
SELECT dateadd(week,-3,dateadd(week,datediff(week,0,getdate()),0)) --上上上周起始

 

posted @ 2018-03-21 13:35  即兴随缘  阅读(8121)  评论(0)    收藏  举报