I would like to calculate the difference in weeks between two dates when two dates are considered part of the same week if their previous Sunday is the same. Ideally, I would like to do this using DATEDIFF, instead of learning the complex idiom for calculating a value. But I can’t say how it works when weeks are involved.
The following query returns 1 and 2. This may make sense if your calendar week starts on Sunday, i.e. if you run SET DATEFIRST 7in advance or if @@DATEFIRSTby default.
SET DATEFIRST 7;
DECLARE
@d1 DATETIME,
@d2a DATETIME,
@d2b DATETIME
;
SELECT
@d1 = '2010-04-05',
@d2a = '2010-04-16',
@d2b = '2010-04-18'
;
SELECT
DATEDIFF(week, @d1, @d2a) AS weekdiff_a
,DATEDIFF(week, @d1, @d2b) AS weekdiff_b
;
Therefore, I expected different results if, instead of SET DATEFIRST 7being executed SET DATEFIRST 1. But the return values are the same regardless!
? , ?