【问题标题】:SQL Server - get next Friday in DATETIMESQL Server - 在 DATETIME 获取下周五
【发布时间】:2018-08-14 15:45:16
【问题描述】:

要获取任何日期的最后一个星期五,查询如下:

SELECT DATEADD(d,-1-(DATEPART(dw,GETDATE()) % 7),GETDATE())

我怎样才能得到下周五?

【问题讨论】:

  • 加 7 天......................?
  • @MitchWheat 如果GETDATE() 恰好落在星期五的11:59:59 上,并且也恰好发生了闰秒,那么显然你的建议会失败。跨度>
  • 闰秒?噗! OP 在哪里说他们关心闰秒?
  • SELECT DATEADD(d,6-(DATEPART(dw,GETDATE()) % 7),cast(GETDATE() as date))
  • @TimBiegeleisen:嘿。等一下……

标签: sql-server


【解决方案1】:

我已将this answer 更新为考虑@@DATEFIRST 的类似问题:

编辑/更正

SELECT DATEADD(DAY, 13 - (@@DATEFIRST + (DATEPART(WEEKDAY,GETDATE()) %7)), GETDATE())

【讨论】:

  • 如果今天是星期六(@@DATEFIRST 是 7),该函数返回上一个星期五,而不是下一个星期五。
  • @RazvanSocol - 我已经用括号的正确位置更新了答案。谢谢。
猜你喜欢
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 2016-12-10
  • 1970-01-01
  • 2014-07-12
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
相关资源
最近更新 更多