Вы можете пройти курс лечения через CTE:
declare @start datetime = '1 apr 2010'
declare @end datetime = '6 may 2010'
;with weeks(wdate) as
(
select @start as wdate
union all
select
dateadd(week, 1, wdate)
from weeks
where wdate < @end
)
select wdate
from weeks
2010-04-01 00:00:00.000
2010-04-08 00:00:00.000
2010-04-15 00:00:00.000
2010-04-22 00:00:00.000
2010-04-29 00:00:00.000
2010-05-06 00:00:00.000