【发布时间】:2018-05-07 15:46:25
【问题描述】:
在 .NET C# 中有 Calendar.GetWeekOfYear 方法
public virtual int GetWeekOfYear(
DateTime time,
CalendarWeekRule rule,
DayOfWeek firstDayOfWeek)
其中有一个参数“CalendarWeekRule”来定义规则。 就我而言,我使用 CalendarWeekRule.FirstFourDayWeek 断言一周需要在同一个月中有 4 天才能被视为一周。
https://msdn.microsoft.com/en-us/library/system.globalization.calendar.getweekofyear(v=vs.110).aspx
如何在 SQL 中执行此操作? 有没有等价的功能?
【问题讨论】:
-
仅供参考:ISO 8601 定义了一年中的第几周,并将星期一作为一周的第一天,并规定该周在其所属的一年中必须至少有 4 天(所以如果 1 月 1 日落在Mon-Thu,属于本年度,但如果是Fri-Sun,则属于上一年最后一周的一部分,可能是上一年的第52周或第53周。您必须获得“一年中的某一天”值(1 月 1 日为 1,12 月 31 日为 365 或 366),以及一年中 1 月 1 日的“星期几”,并用算术进行计算。
-
@JonathanLeffler 谢谢。是否可以选择使用星期日作为一周的第一天而不是星期一?
标签: sql sql-server date datetime calendar