用Convert(Char(10), xtrq, 126)试试

解决方案 »

  1.   

    那是你在查询的where 语句里写的太僵硬了
    你可以把你的存储过程中的查询语句中判断时间的语句改为
    datediff(dy,@rq,你的日期字段名)=0
    这样不管@rq传的是什么格式的日期(带时间的也没问题),查出的就是你要求的那一天的纪录。
      

  2.   

    试一试 left(convert(char,xtrq,120),10)
      

  3.   

    方法很多!
    第一如果要传的是varchar
    那么最好定义一个变量
    declare @kk varchar(20)
    select @kk='2001/5/17'
    然后你要改你的存储过程!
    例如
    select * from tablename where left(convert(char,xtrq,120),10)=@kk 
      

  4.   

    exec procname '2001-05-15'  用这种格式/内部
    select * from tablename where (convert(char(10),RQFld,120)=@InPutRQ 
      

  5.   

    我觉得这是微软的一个应该改进的功能。看看我的解决方法:    if convert(varchar,@time,102)=convert(varchar,getdate(),102) ==>判断      .................
        or convert(smalldatetime,convert(varchar,getdate(),102))==> 没有时间的日期