关于datediff的性能问题~~~~~
有个datetime类型的字段名为updatetime,值格式为 "2007-9-6 10:02:00 "
我想查询2009-9-1 10:02:00至2009-9-6 10:02:00之间的记录时,用以下两个语句哪个性能更好点?我发现都可以做到同样的效果,而且在查询分析器里看到执行所用的时间完全是一样的:
--用datediff
select * from test_tb where datediff(ss,2009-9-1 10:02:00,updatetime)> 0 and datediff(ss,2009-9-6 10:02:00,updatetime) <0
--直接用> 和 <符号
select * from test_tb where updatetime> '2009-9-1 10:02:00 ' and updatetime < '2009-9-6 10:02:00 '
两种方式哪种效率更高呢???
------解决方案--------------------后面一个.
------解决方案--------------------第二种,不过最好把> 改为> = , <改为 <=
------解决方案--------------------第二个要效率要高一些,因为第一个用了函数。
------解决方案--------------------个人认为第二个好。
如果你在updatetime上面建立了索引,第二个可以用到索引,
而第一个对列updatetime进行了列运行,会对整个表进行扫描,用不到索引。