you get errors because you cannot divide a DATE by a NUMBER -- trunc(sysdate) returns a DATE, and a DATE minus a NUMBER returns a DATE again. so you can only do things like: trunc(sysdate) - (22/86400) Kind regards, Lex. --------------------------------------------- visit my website at http://www.naturaljoin.nl --------------------------------------------- -----Original Message----- From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx]On Behalf Of Wes Brooks Sent: Tuesday, August 03, 2004 16:54 To: oracle-l@xxxxxxxxxxxxx Subject: 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 --------- 02-AUG-04 <--- Wrong date. 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 --- Edgar Chupit <edgar.chupit@xxxxx> wrote: > 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. ---------------------------------------------------------------- Please see the official ORACLE-L FAQ: http://www.orafaq.com ---------------------------------------------------------------- To unsubscribe send email to: oracle-l-request@xxxxxxxxxxxxx put 'unsubscribe' in the subject line. -- Archives are at //www.freelists.org/archives/oracle-l/ FAQ is at //www.freelists.org/help/fom-serve/cache/1.html ----------------------------------------------------------------- -- Binary/unsupported file stripped by Ecartis -- -- Type: text/x-vcard -- File: Lex de Haan.vcf ---------------------------------------------------------------- Please see the official ORACLE-L FAQ: http://www.orafaq.com ---------------------------------------------------------------- To unsubscribe send email to: oracle-l-request@xxxxxxxxxxxxx put 'unsubscribe' in the subject line. -- Archives are at //www.freelists.org/archives/oracle-l/ FAQ is at //www.freelists.org/help/fom-serve/cache/1.html -----------------------------------------------------------------