请教,知道起始日期和结束日期,如何循环生成各个日期到数据库中
请问,知道起始日期和结束日期,怎么循环生成各个日期到数据库中。
请问,知道起始日期和结束日期,怎么循环生成各个日期到数据库中。
也就是把这些日期插入到数据库的表中。
------解决方案--------------------
------解决方案--------------------
请问,知道起始日期和结束日期,怎么循环生成各个日期到数据库中。
也就是把这些日期插入到数据库的表中。
------解决方案--------------------
create function generateTimeV2
(
@begin_date datetime,
@end_date datetime
)
returns @t table(date datetime)
as
begin
insert into @t
select dateadd(dd,number,@begin_date) AS date
from master..spt_values
where type='p' and dateadd(dd,number,@begin_date)<=@end_date
return
end
--测试示例
select * from dbo.generateTimeV2('2009-01-01','2009-01-10')
------解决方案--------------------
-- 建测试表
create table datelist(xz datetime)
-- 插入数据
declare @begindate datetime,@enddate datetime
select @begindate='2014/05/01', -- 起始日期
@enddate='2014/06/17' -- 结束日期
while(@begindate<=@enddate)
begin
insert into datelist(xz) values(@begindate)
select @begindate=dateadd(d,1,@begindate)
end
-- 结果
select * from datelist
/*
xz
-----------------------
2014-05-01 00:00:00.000
2014-05-02 00:00:00.000
2014-05-03 00:00:00.000
2014-05-04 00:00:00.000
2014-05-05 00:00:00.000
2014-05-06 00:00:00.000
2014-05-07 00:00:00.000
2014-05-08 00:00:00.000
2014-05-09 00:00:00.000
2014-05-10 00:00:00.000
2014-05-11 00:00:00.000
2014-05-12 00:00:00.000
2014-05-13 00:00:00.000
2014-05-14 00:00:00.000
2014-05-15 00:00:00.000
2014-05-16 00:00:00.000
2014-05-17 00:00:00.000
2014-05-18 00:00:00.000
2014-05-19 00:00:00.000
2014-05-20 00:00:00.000
2014-05-21 00:00:00.000
2014-05-22 00:00:00.000
2014-05-23 00:00:00.000
2014-05-24 00:00:00.000
2014-05-25 00:00:00.000
2014-05-26 00:00:00.000
2014-05-27 00:00:00.000
2014-05-28 00:00:00.000
2014-05-29 00:00:00.000
2014-05-30 00:00:00.000
2014-05-31 00:00:00.000
2014-06-01 00:00:00.000
2014-06-02 00:00:00.000
2014-06-03 00:00:00.000
2014-06-04 00:00:00.000
2014-06-05 00:00:00.000
2014-06-06 00:00:00.000
2014-06-07 00:00:00.000
2014-06-08 00:00:00.000
2014-06-09 00:00:00.000
2014-06-10 00:00:00.000
2014-06-11 00:00:00.000
2014-06-12 00:00:00.000
2014-06-13 00:00:00.000
2014-06-14 00:00:00.000
2014-06-15 00:00:00.000
2014-06-16 00:00:00.000
2014-06-17 00:00:00.000
(48 row(s) affected)
*/