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

时间:2017-11-23 16:05:23

标签: sql sql-server date datetime calendar

在.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中执行此操作? 是否有相同的功能?

2 个答案:

答案 0 :(得分:3)

DATEPART ( wk, date ) 

这将返回您提供的一周内的整数。对于DATEPART的更多参数,这里是链接! DATEPART TSQL

编辑:正如您在评论中提到的那样,您可以使用SET DATEFIRST = (see values here)

更改一周的第一天

答案 1 :(得分:1)

在SQL中,如果table为'tblWeekOfYear'且[time]为DateTime字段,则它会计算DateTime字段中两个不同日期Select Distinct DatePart(ww, [time]) as WeekNo from tblWeekOfYear where [time] between '2017-10-01' and '2017-10-02'; 的周数。

Parent root = FXMLLoader.load(getClass().getResource("/ScheduleView.fxml"));