当前位置: 代码迷 >> Sql Server >> SQL显示当前日期的周一是哪天,该如何处理
  详细解决方案

SQL显示当前日期的周一是哪天,该如何处理

热度:9   发布时间:2016-04-24 09:05:32.0
SQL显示当前日期的周一是哪天
select convert(varchar(10),(DATEADD(wk,DATEDIFF(wk,0,@WhichWeek),0)),112)


用这个方法基本是对的,但是当@WhichWeek这个参数是周日的时候,显示的是下周的周一。

比如@WhichWeek = 2015/05/03时,这个方法的得到的是20150504,我想的到的是20150427.

求高人解答,ps我已经试过SET DATEFIRST 1了,没有用,求其他方法~~

谢谢~
------解决思路----------------------
SET DATEFIRST 1
DECLARE @WhichWeek DATETIME
SET @WhichWeek=GETDATE()-1--昨天是周日
select CONVERT(VARCHAR(8),DATEADD(DAY,1-DATEPART(WEEKDAY,@WhichWeek),@WhichWeek),112)

------解决思路----------------------
declare @day datetime = '2015-05-20'
set datefirst 1
select DATEADD(day,-(DATEPART(weekday,@day)-1),@day)
------解决思路----------------------
declare @day datetime SET @day= '2015/05/03'
set datefirst 1
select DATEADD(day,-(DATEPART(weekday,@day)-1),@day) 
  相关解决方案