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日”
所以你希望某列的默认值是最近即将到来的星期五? –
HTTP://计算器。com/questions/5998084/get-the-most-recent-fridays-date -sql –
我希望默认值基于现在的日期,然后知道下一个可用日期是'05-07/2013' – PriceCheaperton