如何在给定条件下获取周数
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_WEEK
和 DATEFIRST
的评论。在 ISO_WEEK
的情况下无论如何这是星期一...)
测试你的边缘情况...
如果标准(开箱即用)机制不能满足您的需求,您应该。您可以通过任何自定义列来扩大它。任何 compute-this-with-some-magic-logic 方法都比在 table 中手动设置一些边缘值更费时费力。此外,这样的 table 会更快,并且会在很多相关情况下为您提供帮助。
如何获取以星期日为一周第一天的日期的周数,并从新年至少有四天的那一周开始,简而言之,日期部分相当于
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_WEEK
和 DATEFIRST
的评论。在 ISO_WEEK
的情况下无论如何这是星期一...)
测试你的边缘情况...
如果标准(开箱即用)机制不能满足您的需求,您应该