이번 주와 지난 주 비교에 대한 보고서가 있는데 고객이 데이터가 "펑키"하다는 것을 알았습니다. 추가 조사 결과 ISO 표준에 따라 몇 주가 올바르게 수행되지 않는 것으로 나타났습니다. 이 스크립트를 테스트 사례로 실행했습니다.
SET DATEFIRST 1
SELECT DATEPART(WEEK, '3/26/13')
, DATEPART(WEEK, '3/27/12')
, DATEPART(WEEK, '3/20/12')
, DATEPART(WEEK, '1/2/12')
SELECT DATEPART(ISO_WEEK, '3/26/13')
, DATEPART(ISO_WEEK, '3/27/12')
, DATEPART(ISO_WEEK, '3/20/12')
, DATEPART(ISO_WEEK, '1/2/12')
실행하면이 결과를 얻었습니다.
나는 이것이 독창적이라고 생각하고 좀 더 파고 들었고 SQL Server는 1 월 1 일을 첫 번째 주로 계산하고 ISO가 1 월 첫 번째 일요일을 첫 주로 계산하는 것을 발견했다.
그런 다음 질문은 두 가지로 끝납니다. 질문 1 왜 이런가요? 질문 2 이것을 바꿀 수있는 방법이 있으므로 ISO_Week
어디에서나 사용하기 위해 모든 코드를 수정할 필요가 없습니까?