2017-11-23 16 views
1

はCalendar.GetWeekOfYear方法ルールを定義するためのパラメータ "CalendarWeekRule" があるカレンダールールを使用して週に1週間のSQLを取得する方法は? .NET C#の

public virtual int GetWeekOfYear(
DateTime time, 
CalendarWeekRule rule, 
DayOfWeek firstDayOfWeek) 

あります。 私のケースでは、CalendarWeekRule.FirstFourDayWeekを使用して、1週間は同じ月の4日間を週と見なす必要があると主張しました。

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

は、どのように私はSQLでこれを行うことができますか? 同等の機能はありますか?

+1

はFYI:ISO 8601年の週を定義し、週の1日目として月曜日を使用し、一週間はそれが属する年に少なくとも4日間を持たなければならないと規定している(ように1月1日には、上にある場合Mon-Thu、現在の年に属しますが、Fri-Sunに該当する場合は前年の最後の週の一部で、前年の52週または53週になる可能性があります。 1月1日は1、12月31日は365または366)、1年の1月の1日の曜日を取得し、算術演算を使用します。 –

+1

注:[日付指定した週数を計算?](https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024) –

+0

@JonathanLeffler感謝あなたは月曜日の代わりに週の1日として日曜日を使用するオプションはありますか? – Rute

答えて

3
DATEPART (wk, date) 

これは、指定した日付からその週の整数を返します。 DATEPARTのさらなるパラメータについては、ここにリンクがあります! DATEPART TSQL

EDIT:表がある場合は、あなたの質問のコメントで尋ねたとして、あなたはSQLでSET DATEFIRST =(see values here)

+0

ありがとうございました – Rute

1

で週の最初の曜日を変更することができ、「tblWeekOfYear」と[時間] DateTimeフィールドであります2つの異なる日付の週番号をDateTimeフィールドに'2017-10-01' and '2017-10-02'として計算します。

Select Distinct DatePart(ww, [time]) as WeekNo 
from tblWeekOfYear where [time] between '2017-10-01' and '2017-10-02'; 
関連する問題