为什么 SQL datepart(ww,GETDATE()) returns 当前周 + 1

Why SQL datepart(ww,GETDATE()) returns current week + 1

我正在尝试获取日历的当前周。假设今天是 2022-03-14 12:00:00.

我正在使用这两个:

select GETDATE() // returns 2022-03-14 12:00:00
select datepart(ww,GETDATE() //returns 12

但根据日历 2022-03-14 12:00:00 应该是第 11 周。

差异从何而来,我如何才能获得基本的当前周数?

SQL 服务器中的 GetDatePart(ww, ...) 依赖于设置的 datefirst 作为 documented here. 您可以使用 GetDatePart(isoww, getdate()) 来获取 ISO 周数。