请问在sql server 2005存储过程中如何给时间赋值?
  CREATE PROCEDURE  SP_TEST
    @KSRQ(开始日期)  datetime,
    @today(结束日期)  datetimeas 
   being 
    insert into table_one (a,
                           b,
                           c)
   select a,b,c from table_two where rq(时间)>=@ksrq and rq<=@today
  
   end注:1.@KSRQ取当前系统前一天的时间,如今天是2007-11-2,就取2007-11-1,且只要当前系统的日期,不要后面的时间,如果在过程中给@KSRQ赋值.
   2.@today取当前系统的日间,不要后面的时间.也是如果在过程中赋值.想实现 的内容是只要在table_two中的开始时间大于等于当前系统的前一天and小于等于当前系统的时间的数据,就insert到table_one中去,
谢谢了,小弟急等.

解决方案 »

  1.   

    传两字符串,存储过程和函数中不能使用getdate()@today = convert(varchar(10),getdate(),120)
    @ksrq  = convert(varchar(10),dateadd(day,-1,getdate()),120)
      

  2.   

    大乌龟,你别误导楼主,存储过程参数怎么不能用datetime了。
    create proc p_test
    @t datetime
    asselect @t
    go
    declare @t datetime
    set @t = convert(datetime,'2007-11-2',120)
    exec p_test @t
    go
    drop proc p_test
    go
      

  3.   


      楼主的@today,@ksrq 是存储过程中的参数,需要在存储过程外面赋值
    declare @today datetime,@ksrq datetime
    declare @today varchar(10),@ksrq varchar(10)
    set @today=convert(varchar(10),getdate(),120) 
    set @ksrq=convert(varchar(10),dateadd(day,-1,getdate()),120) --print @today
    --print @ksrqexec SP_TEST @today,@ksrq