Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: SQL Tunning
Hello expert,
Thank you very much for all of your reply.
But in my case, the 1 is variable. I tried the following but it complains that
SELECT TRUNC(SYSDATE)-22/86400 from dual;
TRUNC(SYS
SELECT TRUNC(SYSDATE-22)/86400 from dual; SELECT (TRUNC(SYSDATE)-22)/86400 from dual;
These two SQL statements gave the error:
ORA-00932: inconsistent datatypes
If I try this one, it works.
SELECT TRUNC(SYSDATE - 22), TO_DATE(TO_CHAR(TRUNC(SYSDATE-22+1), 'DD-MON-YYYY HH24:MI:SS'), 'DD-MON-YYYY HH24:MI:SS') from dual;
Is there any way to improve this lengthly statement?
Thanks,
Wes
> Hello Wes,
>
> WB> WHERE TRUNC(last_update_date) = TRUNC(SYSDATE - 1)
> WB> How to improve the performance? Do I need to create a new index field on the table with
> TRUNC(last_update_date)?
>
> You have several opportunities:
> a) you can rewrite your query to this:
> where last_update_date between trunc(sysdate)-1 and trunc(sysdate)-1/86400
> b) you can create function based index like:
> create index tt_idx on tt(trunc(last_update_date));
> c) you can add column to your table with values from trunc(last_update_date)
>
> What option to choose mostly depends on your requirements.
-- Archives are at http://www.freelists.org/archives/oracle-l/ FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html -----------------------------------------------------------------Received on Tue Aug 03 2004 - 10:50:21 CDT
![]() |
![]() |