如何在给定条件下获取周数

How to get weeknumber with the given conditions

如何获取以星期日为一周第一天的日期的周数,并从新年至少有四天的那一周开始,简而言之,日期部分相当于

 DatePart("WW", datefield, vbSunday, vbFirstFourDays)?

因为例如,我希望 2015 年 1 月 1 日为 return 53 而不是 1,因为 2015 年的第一周虽然有 4 天,但从星期四而不是星期日开始。

我不知道这是否满足您的所有要求,但是 there is ISO_WEEK。试试这个:

SELECT DATEPART(ISO_WEEK,'20160103') 

以哪一天为first day of the week is dependant on DATEFIRST。 (请参阅有关 ISO_WEEKDATEFIRST 的评论。在 ISO_WEEK 的情况下无论如何这是星期一...)

测试你的边缘情况...

如果标准(开箱即用)机制不能满足您的需求,您应该。您可以通过任何自定义列来扩大它。任何 compute-this-with-some-magic-logic 方法都比在 table 中手动设置一些边缘值更费时费力。此外,这样的 table 会更快,并且会在很多相关情况下为您提供帮助。