Hmmm: SELECT DUMP(SYSDATE - SYSDATE) FROM dual; DUMP(SYSDATE-SYSDATE) ----------------------------------------- Typ=14 Len=8: 0,0,0,0,0,0,0,0 But according to the Oracle9i SQL Reference Release 2 (9.2) Part Number A96540-02, section titled "Datatypes", there is no type "14". Similarly, when subtracting a number from a date: SELECT DUMP(SYSDATE - 1) FROM dual; DUMP(SYSDATE-1) ----------------------------------------- Typ=13 Len=8: 7,214,4,12,12,16,3,0 And there is no type "13" listed, either. One could ASSuME that 13 and 14 are dates, given that type 12 is, and Metalink article 69028.1 mentions "External datatype 13 is an internal c-structure whose length varies depending on how the c-compiler represents the structure.", but that's all I could find. Thanks all for the clarification on this. There seemed to be some undocumented features at work here that was making me curious. Rich -----Original Message----- From: Ken Naim [mailto:kennaim@xxxxxxxxx] Sent: Thursday, April 13, 2006 12:03 PM To: Jesse, Rich; oracle-l@xxxxxxxxxxxxx Subject: RE: I was told there would be no (date) math When you subtract two dates you get a number and sql follows order of operations so it goes from left to right. Trunc(sysdate)- Trunc(sysdate) - Trunc(sysdate) becomes 1- trunc(sysdate) which throws the error as you cannot subtract a date from a number With the parenthesis the way you have it you start with TRUNC(SYSDATE) - (TRUNC(SYSDATE) - TRUNC(SYSDATE)) which becomes TRUNC(SYSDATE) - 1 which is fine. If you would switch the parenthesis to (TRUNC(SYSDATE) - TRUNC(SYSDATE)) - TRUNC(SYSDATE) you would get the same error as it would become 1- trunc(sysdate) Ken Naim -----Original Message----- From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Jesse, Rich Sent: Thursday, April 13, 2006 8:52 AM To: oracle-l@xxxxxxxxxxxxx Subject: I was told there would be no (date) math Hey all, While debugging an analytical function issue using 9.2.0.5, I run this idiotic query: SELECT TRUNC(SYSDATE) - TRUNC(SYSDATE) - TRUNC(SYSDATE) FROM DUAL; And it errors out with: ORA-00932: inconsistent datatypes: expected DATE got DATE (In 10.2, the verbage is modified to "expected JULIAN DATE got DATE") Add parenthesis and it works: SELECT TRUNC(SYSDATE) - (TRUNC(SYSDATE) - TRUNC(SYSDATE)) FROM DUAL; I've been looking through the docs and Metalink, but I'm unable to answer "Why?". Anyone? TIA! Rich -- //www.freelists.org/webpage/oracle-l -- //www.freelists.org/webpage/oracle-l