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

  • To: <oracle-l@xxxxxxxxxxxxx>
  • Date: Thu, 13 Apr 2006 11:34:45 -0400

Time travel may not yet be fully supported but you can do this:

tfd2 > select to_date(sysdate - 10) - sysdate from dual;

TO_DATE(SYSDATE-10)-SYSDATE
---------------------------
                 -10.448299

And this
  1* select trunc(sysdate) - 10 - trunc(sysdate) from dual
tfd2 > /

TRUNC(SYSDATE)-10-TRUNC(SYSDATE)
--------------------------------
                             -10

So the negative should not be a problem.  This looks like an internal
datatype conversion problem.

-- Mark D Powell --


-----Original Message-----
From: oracle-l-bounce@xxxxxxxxxxxxx
[mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Mercadante, Thomas F
(LABOR)
Sent: Thursday, April 13, 2006 10:42 AM
To: Rich.Jesse@xxxxxx; oracle-l@xxxxxxxxxxxxx
Subject: RE: I was told there would be no (date) math

Rich,

Well, logically, the first query returns a negative date.  

Time travel is not permitted in Larry-Land - not until he can find a way
to charge for it.

The second one returns todays date.

Tom

-----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: