insert into @t values(@begin_t)
set @c=@@rowcount
set @i=1
while @i>0
begin
insert into @t
select d+@c from @t
where d+@c <@end_t
set @i= @@rowcount
set @c= @c+@i
end
Declare @StartDate DateTime, @EndDate DateTime
Select @StartDate = '2007-1-1' , @EndDate = '2007-1-5'
Select Top 100 Identity(Int, 0, 1) As ID Into #T from Sysobjects A, Sysobjects B
Select
DateAdd(dd, ID, @StartDate) As [Date]
From #T
Where ID <= DateDiff(dd, @StartDate, @EndDate)
Drop table #T
--Result
/*
Date
2007-01-01 00:00:00.000
2007-01-02 00:00:00.000
2007-01-03 00:00:00.000
2007-01-04 00:00:00.000
2007-01-05 00:00:00.000
*/
create t1 (date datetime)
declare @enddate as datetime
set @enddate='2007-1-1'
while @enddate<='2007-1-5'
begin
insert into t1 select @enddate
select @enddate=dateadd(day,1,@enddate)
end
create table #
(
col datetime
)
go
declare @begintime datetime
declare @endtime datetime
declare @day int
set @begintime=cast('2007-1-1' as datetime)
set @endtime =cast('2007-1-5' as datetime)
select @day=DATEDIFF(day, @begintime, @endtime)
while @day>=0
begin
insert into # select dateadd(day,@day,@begintime)
set @day=@day-1
end
select * from #
drop table #
---
col
-----------------------
2007-01-05 00:00:00.000
2007-01-04 00:00:00.000
2007-01-03 00:00:00.000
2007-01-02 00:00:00.000
2007-01-01 00:00:00.000