oracle查询语句中使用between and 查询效率高吗? 与to_char相比如何?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle查询语句中使用between and 查询效率高吗? 与to_char相比如何?相关的知识,希望对你有一定的参考价值。

时间字段 Between To_Date('2014-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') And To_Date('2014-12-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss') 和 to_char('时间字段','yyyy')='2014' 这两个函数意义是否相同,哪个查询速度更快一些?

看你的索引和数据量情况,

如果你的索引是建立在 时间字段 上的,那么一般来说,第一个会快

如果你的索引是建立在 to_char('时间字段','yyyy') 函数上的,那么一般来说,第二个快

当然还和Oracle数据库统计的数据量有关。

比如,你表中只有2014年的数据,那么肯定全部是全表扫描。
参考技术A 结果应该是非常近似了,因为你的beween只限制到秒
最好再不要用to_char+字段了,因为在字段上用了函数,非到万不得已不要用,字段上加函数后,在这个字段上的索引将不会被使用。
字段上有索引时,相比较between会快,to_char不会用到索引,要慢些
查询条件里要避免在字段上使用函数
between的表现形式还可以
时间字段 >=To_Date('2014-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') And 时间字段
<= To_Date('2014-12-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss')本回答被提问者采纳

使用between and 作为查询条件

技术图片

技术图片

技术图片

 

以上是关于oracle查询语句中使用between and 查询效率高吗? 与to_char相比如何?的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句怎样查询一个范围

Mysql 数据查询语句中between and 是包含边界值的

Oracle 查询 BETWEEN (date) AND (date)

SQL语句中 between and

sql 语句问题,关于BETWEEN AND 和DATE 的

PLSQL 中的查询参数定义