读书人

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

发布时间: 2012-09-07 10:38:15 作者: rapoo

请问如何按照日期来循环的调用存储过程取数据,求助
一个存储过程 参数有:

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<=@enddate)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  --@rq为你需要查询的日期    set @i=@i+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 @i=@i+1end 

读书人网 >SQL Server

热点推荐