数据库中
sta   char(1),
time  varchar(20)(存datetime类型的数据)
用游标计算出sta=0 与 sta=3 之间的时间差,然后存到临时表中timelist字段中,如何在存储过程里用游标实现呀?谢谢了,
再次感谢

解决方案 »

  1.   

    楼主,问题没说清吧sta=0 与 sta=3 是如何得来的
      

  2.   

    这个为什么要用游表啊?
    Declare @t1 datetime,@t2 datetime
    @t1=(select convert(datetime,[time]) from tablename where sta=0)
    @t2=(select convert(datetime,[time]) from tablename where sta=3)
    Select datediff(day,@t1,@t2)
      

  3.   

    非要用游表,
    Declare @t1 datetime,@i int
    Declare @t2 datetime,@t3 datetime
    Declare cursor c1 scroll for
     Select convert(datetime,[time]),sta from tablename
    Open c1
    Fetch first form c1 into @t1,@i
      While @@fetch_status=0
      Begin
        If @i=0
           Set @t2=@t1
        If @i=3
          Set @t3=@t1
         Fetch next from c1 into @t1,@i
      End
    Close c1
    deallocate c1select datediff(day,@t2,@t3)
      

  4.   

    太感谢了,马上给分,不过还有个问题就是,我要把这个数据插入到临时表中 ,如何处理,看似很简单的,create table #lsb(
    id           varchar(25),
    passtime        varchar(25), 
    )  插入到passtime字段里,如何处理呢,嘿嘿,还得麻烦你了,我太菜了,还得通过关联id,关联表为 flex_svc_statuslog,怎么写啊? 
      

  5.   

    就是把这个取出来的时间差插入到临时表那个字段里面,但是这个时间差对应另外一个表(tt)里的id值,通过这个id值把临时表和表(tt)连接起来,实际在取这个值的时候应该有一个id值对应,明白吗?