SELECT DATEADD(day,-3, DATEADD(week, DATEDIFF(week, 0, current_timestamp)+1, 0)) AS LastFridayDateOfWeek
获取当前一周(星期日)的最后一个日期,然后从中减去 3 得到星期五。
current_timestamp
如果您星期五需要不同的日期,请更换。
编辑:我想了一下,如果上面的(星期五这个星期,所以星期六它给出了前一个日期)不起作用,你可以很容易地使用这样的参考日期设置:
DATEADD(DAY,7 + DATEDIFF(day,'20100109',@checkDateTime)/7*7,'20100108') as FridayRefDate
同样的事情,但没有硬编码的星期五/星期六:
DATEADD(DAY,7 + DATEDIFF(day,DATEADD(wk, DATEDIFF(wk,0,@checkDateTime),5),@checkDateTime)/7*7,DATEADD(wk, DATEDIFF(wk,0,@checkDateTime), 4))
所以 20100109 是星期五。
SET @checkDateTime = '2012-01-14 3:34:00.000'
SELECT DATEADD(DAY,7 + DATEDIFF(day,'20100109',@checkDateTime)/7*7,'20100108') as FridayRefDate
它返回“2012/1/20”
但SET @checkDateTime = '2012-01-13 3:34:00.000'
它返回“2012/1/13”