在我们日常开发中经常会使用到SQL语句对数据进行过滤,查询一个时间间隔的数据经常会使用到,请看下面的列子

【例子1】
查询2018/01/01 至 2018/01/30 一个月的数据,当table的数据达到【几百万】行或者更大是,查询耗时【5-10分钟】,严重影响效率和性能,使用to_char函数先将table中的日期格式转换为文本格式【yyyy/MM/dd】耗时最大,如果服务器负荷过大就可能导致【宕机】等严重的问题发生

//下面这个例子是查询一个时间段的数据, 【date】字段在数据库中是Date日期类型的数据

select * from table where to_char(date,'yyyy/MM/dd') between '2018/01/01' and '2018/01/30'
【解决方法】
【to_char】替换【to_date】

//将to_date函数替换成to_char将大大提高查询性能和效率

select * from table where date between to_date('2018/01/01','yyyy-MM-dd hh24:mi:ss') and to_date('2018/01/30','yyyy-MM-dd hh24:mi:ss')

————————————————
原文链接:https://blog.csdn.net/yu_handsome/article/details/83409488

最后修改:2022 年 01 月 18 日
如果觉得我的文章对你有用,请随意赞赏