最近接手了一个项目。使用的数据库是sql server,但是遇到一些关于日期的查询的时候,查询结果非常慢。看了下别人的sql
//sql = sql + " and CONVERT(nvarchar(19),AddTime,120)<='" + where["AddTime2"].ToString() + "'";
这个对时间操作的效率太低了。我猜应该是每行的时间都需要截图然后比较导致性能非常差,强调下如果没有比较可能性能还好一点。
所以后来经过处理之后,我们把sql 改成了
sql = sql + " and datediff(d,AddTime,'" + where["AddTime2"].ToString() + "')>=0";
总结下吧如果有日期对比在sql server里面千万不要用CONVERT 这个关键字再比较 最好用datediff!