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)