当前位置: 代码迷 >> Sql Server >> 请教怎么按照日期来循环的调用存储过程取数据
  详细解决方案

请教怎么按照日期来循环的调用存储过程取数据

热度:10   发布时间:2016-04-27 11:30:53.0
请问如何按照日期来循环的调用存储过程取数据,求助
一个存储过程 参数有:
SQL code
create proc ccgc  @p_aa),               -- 4位  @p_bb varchar(20),           -- 20位用  @p_ksrq varchar(8) = '',     @p_jzrq varchar(8) = '',as...insert into #bb exec dbo.up_this @p_aa      = @p_aa, -- char(4)                                 @p_bb      = @p_bb, -- varchar(20)                                 @p_yigerq    = @p_ksrq, -- varchar(8)                                 @p_cc      = '', -- char(1)                                 @p_dd      = '', -- varchar(255)                                 @p_ee      = '', -- varchar(255)                                 @p_ff      = '', -- varchar(255)                                 @p_gg      = '', -- varchar(255)                                 ...

通过此存储过程能查询出相应日期的相关数据,现在要查询连续多日的,一个开始日期,一个截止日期,把这段时间的数据都取出来插到#bb中; 这个要怎么办。。

------解决方案--------------------
SQL code
declare @begindate datetime set @begindate='2012-08-01'declare @enddate datetime set @enddate='2012-08-10'while (@begindate<[email protected])begin    --select @begindate    insert into #bb exec dbo.up_this @p_aa      = @p_aa, -- char(4)                                 @p_bb      = @p_bb, -- varchar(20)                                 @p_yigerq    = @p_ksrq, -- varchar(8)                                 @p_cc      = '', -- char(1)                                 @p_dd      = '', -- varchar(255)                                 @p_ee      = '', -- varchar(255)                                 @p_ff      = '', -- varchar(255)                                 @p_gg      = '', -- varchar(255)    set @begindate=dateadd(d,1,@begindate)end
------解决方案--------------------
SQL code
declare @p_ksrq varchar(10),@p_jzrq varchar(10),@rq varchar(10),@i intselect @p_ksrq='2012-08-01',@p_jzrq='2012-08-15',@i=0while @i<=datediff(day,@p_ksrq,@p_jzrq)begin    set @rq=dateadd(day,@i,@p_ksrq)    select @rq  [email protected]    set @[email protected]+1end
------解决方案--------------------
SQL code
declare @begin_date varchar(10)declare @end_date   varchar(10)declare @date       varchar(10)declare @i          intset @begin_date='2012-08-01'set @end_date='2012-08-15'set @i=0while @i<=datediff(day,@begin_date,@end_date)begin    select @date=dateadd(day,@i,@begin_date)    print @date       set @[email protected]+1end
  相关解决方案