什么方式比较日期是否相等比较可靠
select * from tt where rq=@rq
数据库中rq是date格式,格式为yyyy-MM-dd
传递的参数格式有可能为yyyy/M/d、yyyy-M-d等格式,
getCmd.Parameters.Add("@rq", SqlDbType.Date).Value = rq;
我执行的时候发现传入同样的日期,有的能读出来,有的读不出来;
用什么方式能适应各种情况?
------解决方案--------------------select * from tt where rq=convert(char(8),@rq,120)
------解决方案-------------------- set @rq = convert(nvarchar(10),@rq,23)---在sql语句前面加一句 。不管你传什么参数,执行sql的时候都转成统一的参数格式。
select * from tt where rq=@rq
------解决方案--------------------确保对比的数据数据类型是一致的,然后尽量不要转换数据类型,特别是日期型转成字符型,精度不准确。