【问题标题】:Calculate the previous sundays date from a Date column? [duplicate]从日期列计算上一个星期日的日期? [复制]
【发布时间】:2021-11-22 13:04:57
【问题描述】:

我有一个包含字段 t.Processed_Date 的表。我需要返回该日期的上一个星期日。我正在尝试的一切都不起作用。

DATEADD(day,
    -1 - (DATEPART(weekday, GETDATE()) + CAST(Processed_Date As date) - 2) % 7,
    GETDATE()
) As 'Last Sunday'

但这会报错

Msg 206, Level 16, State 2, Line 3
Operand type clash: date is incompatible with int

服务器是 MS SQL Server 2017 标准

【问题讨论】:

标签: sql sql-server sql-server-2017


【解决方案1】:
SELECT DATEADD(wk, DATEDIFF(wk, 6, Processed_Date), 6) as LastSunday

【讨论】:

  • 感谢这个完美的作品
  • 简洁的解决方案 - 我很想看到一个简短的解释。
  • SET DATEFIRST 会搞砸的
  • @PeterSmith 请参阅stackoverflow.com/a/1177529/14868997,它基本上是从“第 6 天”(1900-01-07)到那一天的整周数,从而截断差异
猜你喜欢
  • 2013-03-30
  • 1970-01-01
  • 1970-01-01
  • 2018-06-12
  • 2019-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-02
相关资源
最近更新 更多