주 두 날짜 사이의 차이를 계산하고 싶습니다. 두 날짜는 이전 일요일이 같은 경우 같은 주 중 일부로 간주됩니다. 이상적으로, 나는이 값을 계산하기 위해 정교한 관용구를 배우는 대신 DATEDIFF
을 사용하여 이것을하고 싶습니다. 그러나 몇 주 동안 어떻게 작동하는지 알 수는 없습니다.DATEDIFF는 SQL Server 2005의 주간 차이를 어떻게 계산합니까?
다음 쿼리는 1과 2를 반환합니다. 사전에 SET DATEFIRST 7
을 실행하거나 기본적으로 @@DATEFIRST
이 7 일 경우 캘린더의 주간이 일요일로 시작하는 경우 의미가 있습니다. SET DATEFIRST 1
대신 SET DATEFIRST 7
의 실행되면
SET DATEFIRST 7;
-- SET DATEFIRST 1;
DECLARE
@d1 DATETIME,
@d2a DATETIME,
@d2b DATETIME
;
SELECT
@d1 = '2010-04-05', -- Monday
@d2a = '2010-04-16', -- Following Friday
@d2b = '2010-04-18' -- the Sunday following
;
SELECT
DATEDIFF(week, @d1, @d2a) AS weekdiff_a -- returns 1
,DATEDIFF(week, @d1, @d2b) AS weekdiff_b -- returns 2
;
그래서 나는 다른 결과를 기대했다. 그러나 반환 값은 상관없이 동일합니다!
여기에 무슨 일이 일어나고 있습니까? 올바른 주간 차이를 얻으려면 어떻게해야합니까?
감사합니다. 귀하의 도움으로 제 문제에 대한 방어적인 해결책을 찾을 수있었습니다. – eksortso