Oracle数据库日期过滤方法性能比较

   在开发SQL时,过滤日期段是经常遇到的情况,如何高效的过滤出日期段?本文通过实验进行验证:

方法一、通过to_char将日期转换成字符串进行比较

         to_char(cr.contractenddate, ‘YYYY-MM-DD‘) >= ‘2014-11-13‘
           and to_char(cr.contractenddate, ‘YYYY-MM-DD‘) <= ‘2015-11-19‘

耗时:0.171s


方法二、通过to_date将字符串转换成日期进行比较

            cr.contractenddate >= to_date(‘2014-11-13‘, ‘YYYY-MM-DD‘)
           and cr.contractenddate <= to_date(‘2015-11-19‘, ‘YYYY-MM-DD‘)

耗时:0.093s


方法三、通过数据库关键字between  and 进行比较

           cr.contractenddate
             between to_date(‘2014-11-13‘, ‘YYYY-MM-DD‘) and to_date(‘2015-11-19‘, ‘YYYY-MM-DD‘)

耗时:0.078s


总结:方法一耗时体现在需要逐个比较字符串的每个字符;

           方法二耗时体现在>= 和<=;

           推荐使用方法三



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。