日期:2014-05-17  浏览次数:20757 次

sql 查询条件 加个时间筛选条件会很慢
WHERE datediff(dd,'2012-05-24',O.OrderDT) >= 0 AND datediff(dd,'2012-05-27',O.OrderDT)<= 0
 AND datediff(dd,'2012-05-24',O.PayDt) >= 0 AND datediff(dd,'2012-05-27',O.PayDt)<= 0 and 
  charindex('0',O.IsReceive) = 1 AND charindex('5',O.State)=0  
  上面是我的查询条件 去掉时间条件 或者 只保留时间条件 都查询很快 两三秒钟 就出来全部结果了 
但是 用上面所有条件查询 几分钟都出不来结果 
 请问 各位大侠 是什么原因呢

------解决方案--------------------
探讨

datediff(dd,'2012-05-24',O.OrderDT) >= 0 AND datediff(dd,'2012-05-27',O.OrderDT)<= 0
AND datediff(dd,'2012-05-24',O.PayDt) >= 0 AND datediff(dd,'2012-05-27',O.PayDt)<= 0
用 datediff 这个函数 是不是相当于建了个索……

------解决方案--------------------
探讨

“以便来说使用计算函数后,都会用扫描的。” 什么意思 会 扫描 全表吗