2017-11-23 1 views
1

는 Calendar.GetWeekOfYear 방법 규칙을 정의하는 매개 변수 "CalendarWeekRule"이캘린더 규칙을 사용하여 SQL에서 주를 얻는 방법? .NET C#에서

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

있다. 필자는 CalendarWeekRule.FirstFourDayWeek를 사용하여 1 주일에 4 일간 같은 달에 1 주일을 고려해야한다고 주장했습니다.

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

어떻게 SQL에서이 작업을 수행 할 수 있습니다? 동등한 기능이 있습니까?

+1

가 참고 : ISO 8601 올해의 주를 정의하고, 주 1 일 월요일를 사용하고 주이 속한 연도에 최소 4 일이 있어야한다고 규정 (그래서 1월 1일는에 떨어지면 월 - 목, 현재 연도에 속하지만, 금 - 일에 해당하는 경우 이전 해의 마지막 주 중 일부이며 전년도 52 주 또는 53 주일 수 있습니다. 기본적으로 산술 주변에 (1 차 월 31 일 12 월 365 또는 366를위한 1) '일 년의 가치, 올해 1 위 월에도'요일 ', 그리고 딩크을 얻을 수 있습니다. –

+1

참고 [어떻게 할 날짜 주어진 주 수를 계산?] (https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024) –

+0

@JonathanLeffler의 감사 너 거기있어? 월요일 대신 일요일을 일요일로 사용하는 옵션? – Rute

답변

3
DATEPART (wk, date) 

제공 한 날짜로부터 일주일 동안 정수를 반환합니다. DATEPART의 추가 매개 변수는 여기 링크입니다! DATEPART TSQL

편집 : 당신이 당신의 질문에 대한 코멘트에 질문 표는 'tblWeekOfYear'과 [시간]의 경우, 당신은 SQL에서 SET DATEFIRST =(see values here)

+0

감사합니다. 도움이되었습니다. – Rute

1

로 한 주를 시작하는 요일을 변경할 수 있습니다 것은 날짜 시간 필드 , 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'; 
관련 문제