/* I spent 3 hours to find out but worth it!
note: I initiated the thread
*/
declare @d1 datetime -- start date
declare @d2 datetime -- end date
declare @nb_days smallint
declare @wd smallint -- weekday to count
declare @j1 smallint -- weekday for start date
declare @j2 smallint -- weekday for endte
select @d1 = '19-03-2003'
select @d2 = '26-03-2003'
select @wd = 3 -- wednesday, depends on @@datefirst
select @nb_days = datediff(d, @d1, @d2) + 1 -- includes start and end
select @j1 = datepart(dw, @d1)
select @j2 = datepart(dw, @d2)
select @nb_days/7 + case when (@j1+@nb_days%7) > @wd + (case when @wd<@j1 then 7 else 0 end)
then 1
else 0
end
/* a loop would not be very efficient in a select.
cursors = :-(
*/
-- Have a good day!
