RE: I was told there would be no (date) math

  • From: "Bobak, Mark" <Mark.Bobak@xxxxxxxxxxxxxxx>
  • To: <Rich.Jesse@xxxxxx>, <oracle-l@xxxxxxxxxxxxx>
  • Date: Thu, 13 Apr 2006 10:40:16 -0400

Well, the error message is a bit odd, but, it might make sense that the
statement gets an inconsistent datatypes error.

If your statement:
Select trunc(sysdate) - trunc(sysdate) - trunc(sysdate) from dual;

Is processed as:
Select (trunc(sysdate) - trunc(sysdate)) - trunc(sysdate) from dual;

Then it ought to raise an inconsistent datatypes error, cause you can't
subtract a date from a number.

Try it this way:
Select trunc(sysdate) - (trunc(sysdate) - trunc(sysdate)) from dual;

to avoid the error.

But, I agree the error message you see doesn't make sense.

-Mark

--
Mark J. Bobak
Senior Oracle Architect
ProQuest Information & Learning

For a successful technology, reality must take precedence over public
relations, for Nature cannot be fooled.  --Richard P. Feynman, 1918-1988


-----Original Message-----
From: oracle-l-bounce@xxxxxxxxxxxxx
[mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Jesse, Rich
Sent: Thursday, April 13, 2006 9: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


Other related posts: