首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于datediff的性能有关问题~

2012-01-14 
关于datediff的性能问题~~~~~有个datetime类型的字段名为updatetime,值格式为 2007-9-610:02:00 我想查

关于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进行了列运行,会对整个表进行扫描,用不到索引。

热点排行