请教一sql语句

up369 2015-04-24 05:29:37
语句1
select * from table where rq>'2015.01.01'
语句2
select * from table where rq>DATEADD(hh,-48,getdate())
请问语句2在查询速度上会不会比语句1慢
...全文
139 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
---涛声依旧--- 2015-04-29
  • 打赏
  • 举报
回复
话说where 等号左边不要用函数,用了会慢
Tiger_Zhao 2015-04-29
  • 打赏
  • 举报
回复
字段名是rq
Tiger_Zhao 2015-04-29
  • 打赏
  • 举报
回复
只要 r1 字段是 datetime/date 类型,效率一样(当然返回结果不一样引起的差异不考虑)。
在SQL中不包含字段的计算表达式都是“常数”,只会计算一次。
两个表达式'2015.01.01'和DATEADD(hh,-48,getdate())的差异可以忽略不计。
Neo_whl 2015-04-29
  • 打赏
  • 举报
回复
我觉得这个你有环境的话可以自己测一测就知道了,任何东西没有绝对的,条件相同的情况下,第二句需要略微计算可能会慢点,实践出真知
HelloWordGirl 2015-04-29
  • 打赏
  • 举报
回复
语句2 相对于语句1应该慢一点吧。
frankl123 2015-04-25
  • 打赏
  • 举报
回复
不会的不会有影响
卖水果的net 版主 2015-04-25
  • 打赏
  • 举报
回复
假定你的 rq 字段,是 datetime 类型; rq>'2015.01.01' ,会有一个隐式的转换 convert(dateteime,2015-1-1') select * from table where rq>DATEADD(hh,-48,getdate()),会有一个运算的过程 两者的执行计划都是一样的,上述两个动作的耗时,可以忽略不计的。 所在说速度也没有影响。
shoppo0505 2015-04-24
  • 打赏
  • 举报
回复
语句2肯定会慢点,因为会调用getdate,dateadd两个函数。可以将getdate()先存入变量再select。 一般数据不多,性能差异不会有太大区别。
还在加载中灬 2015-04-24
  • 打赏
  • 举报
回复
那点运算应该影响不到速度 关键看两个查询因子 所占的数据量

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧