Здравствуйте, в MS SQL Server 2005 вы можете сделать это с помощью следующего кода использования CTE ..
declare @dateh table(ind int identity(1,1),date1 smalldatetime,date2 smalldatetime)
insert into @dateh select '1/1/2011','1/2/2011'
select * from @dateh
;with T as
(
select date1,date2 from @dateh as d
union all
select dateadd(hh,1,date1),date2 From T
where dateadd(hh,1,date1)<= date2
)
Select date1 from T