当前位置:首页 > 数据库 > Sql Server

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

优良自学吧提供SQL显示当前日期的周一是哪天,该如何处理,SQL显示当前日期的周一是哪天select convert(varchar(10),(DATEADD(wk,DATEDIFF(wk,0,@WhichWeek),0)),112) 用这个方法基本是对的,但是当@WhichWeek这个参数是周日的时候,显示的是下周的周一。 比如@Whic

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) 
(本文来自互联网,不代表搜站(http://www.ylzx8.cn/)的观点和立场)
本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(ylzx8cn@163.com),我们会及时处理和回复,谢谢