获取从星期一开始的周数 04:00 am in the year

Get week number starting from monday from 04:00 am in the year

我使用此代码,但周从星期日开始。

Select DATEPART(week,s.Calculationdate) weeknumber, s.Calculationdate
FROM sales.orders s
WHERE s.Calculationdate >= '2020-01-01 04:00:00' and s.Calculationdate < '2020-05-01 04:00:00'
AND s.Calculationdate< CAST(CONVERT(VARCHAR, GETDATE(),23) + '04:00:00' AS datetime)

有了 DATEPART 你可以使用 WEEKISO_WEEK:

SELECT DATEPART(WEEK,'2020-04-05')
SELECT DATEPART(ISO_WEEK,'2020-04-05')

并且您可以使用以下方法对一周的第一天进行更多控制设置:

SELECT @@DATEFIRST
SET DATEFIRST 1; -- day of a week
SELECT @@DATEFIRST