var date1,date2:string;实际date1:='2009-5-10'exec PR_WLSFC '+ckbm+','+spbm+','+date1+','+date2+'
存储过程
CREATE   PROC PR_WLSFC
@ckbm  varchar(10),@spbm  varchar(10),@sdate  datetime,@edate  datetime
select * from a where rq < @sdate where spbm=@spbm
执行时提示第一行'-'有语法错误
应该是时间函数的问题,怎么样比较合理

解决方案 »

  1.   

    CREATE  PROC PR_WLSFC 
    @ckbm  varchar(10),@spbm  varchar(10),@sdate  datetime,@edate  datetime 
    as
    select * from a where rq < @sdate where spbm=@spbm 
      

  2.   

    不是这个问题,存诸过程我只给了一段,本身完整的PR_WLSFC 001,p00003,'2009-05-1','2009-05-20'这样可以查询
    只是传过来的时间是string;而存储过程为,datetime,这里有问题 
      

  3.   


    CREATE  PROC PR_WLSFC 
    @ckbm  varchar(10),@spbm  varchar(10),@sdate  datetime,@edate  datetime 
    select * from a where rq < @sdate and spbm=@spbm    ---两个where 不对,另一个改为 and
      

  4.   

    try:
    CREATE  PROC PR_WLSFC 
    @ckbm  varchar(10),@spbm  varchar(10),@sdate  datetime,@edate  datetime 
    as
    select * from a where rq < @sdate and spbm=@spbm 
      

  5.   

    AS 少了个,WHERE 多了一个,呵呵!!!
      

  6.   

    如果是可以转换成时间的STRING没问题呀!!!
    要不判断下,ISDATE()
      

  7.   

    exec PR_WLSFC '''+ckbm+''','''+spbm+''','''+date1+''','''+date2+''' 
    delphi语法错误