查找最后一个星期天

Adu*_*Adu 12 sql t-sql sql-server sql-server-2000

你怎么在sql 2000中找到一个月的最后一个星期天?

gbn*_*gbn 14

SELECT
 DATEADD(day,DATEDIFF(day,'19000107',DATEADD(month,DATEDIFF(MONTH,0,GETDATE() /*YourValuehere*/),30))/7*7,'19000107')
Run Code Online (Sandbox Code Playgroud)

编辑:我同事的正确,最终,有效的答案.

  • 有人可以解释一下这是如何工作的吗?具体来说,为什么在 DATEADD 和 DATEDIFF 函数中分别使用了“19000107”和“30”?谢谢。 (4认同)

小智 5

select dateadd(day,1-datepart(dw, getdate()), getdate())
Run Code Online (Sandbox Code Playgroud)