方法很多! 第一如果要传的是varchar 那么最好定义一个变量 declare @kk varchar(20) select @kk='2001/5/17' 然后你要改你的存储过程! 例如 select * from tablename where left(convert(char,xtrq,120),10)=@kk
exec procname '2001-05-15' 用这种格式/内部 select * from tablename where (convert(char(10),RQFld,120)=@InPutRQ
我觉得这是微软的一个应该改进的功能。看看我的解决方法: if convert(varchar,@time,102)=convert(varchar,getdate(),102) ==>判断 ................. or convert(smalldatetime,convert(varchar,getdate(),102))==> 没有时间的日期
你可以把你的存储过程中的查询语句中判断时间的语句改为
datediff(dy,@rq,你的日期字段名)=0
这样不管@rq传的是什么格式的日期(带时间的也没问题),查出的就是你要求的那一天的纪录。
第一如果要传的是varchar
那么最好定义一个变量
declare @kk varchar(20)
select @kk='2001/5/17'
然后你要改你的存储过程!
例如
select * from tablename where left(convert(char,xtrq,120),10)=@kk
select * from tablename where (convert(char(10),RQFld,120)=@InPutRQ
or convert(smalldatetime,convert(varchar,getdate(),102))==> 没有时间的日期