trunc()函数的存在,语句将不会使用到索引
SELECT SYSDATE,TRUNC(SYSDATE),trunc(sysdate-1),trunc(sysdate)-1/(24*60*60) FROM dual;
SYSDATE | TRUNC(SYSDATE) | TRUNC(SYSDATE-1) | TRUNC(SYSDATE)-1/(24*60*60) |
2011/4/26 10:29:02 | 2011/4/26 | 2011/4/25 | 2011/4/25 23:59:59 |
通过对=号左边需要用trunc()函数的日期字段,改写成日期区间就会用到索引。
如:select * from table_name where rq between trunc(sysdate)-1 and TRUNC(SYSDATE)-1/(24*60*60);