如何使用日历规则在SQL中获取一年中的第几周?

Rut*_*mos 4 sql sql-server datetime calendar date

在 .NET C# 中,有 Calendar.GetWeekOfYear 方法

public virtual int GetWeekOfYear(
DateTime time,
CalendarWeekRule rule,
DayOfWeek firstDayOfWeek)
Run Code Online (Sandbox Code Playgroud)

其中有一个参数“CalendarWeekRule”来定义规则。就我而言,我使用 CalendarWeekRule.FirstFourDayWeek 来断言一周需要在同一个月中有 4 天才能被视为一周。

https://msdn.microsoft.com/en-us/library/system.globalization.calendar.getweekofyear(v=vs.110).aspx

我怎样才能在 SQL 中做到这一点?有等价的功能吗?

Fle*_*y26 6

DATEPART ( wk, date ) 
Run Code Online (Sandbox Code Playgroud)

这将返回从您提供的日期起一周的整数。更多参数请DATEPART点击链接!数据部分 TSQL

编辑:正如您在问题评论中所询问的那样,您可以更改一周的第一天SET DATEFIRST = (请参阅此处的值)