Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: I was told there would be no (date) math

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

From: Igor Neyman <ineyman_at_perceptron.com>
Date: Thu, 13 Apr 2006 10:37:41 -0400
Message-ID: <F4C27E77F7A33E4CA98C19A9DC6722A2D33FF6@EXCHANGE.corp.perceptron.com>


Could it be because "TRUNC(SYSDATE) - TRUNC(SYSDATE)" returns a NUMBER type?
So, "TRUNC(SYSDATE) - (TRUNC(SYSDATE)" returns a NUMBER, and then you subtract "TRUNC(SYSDATE)" which is DATE type. Obviously, this is not allowed.

In the case with parenthesis:
"(TRUNC(SYSDATE) - TRUNC(SYSDATE))" returns a NUMBER, and then you subtract it from "TRUNC(SYSDATE)" (which is DATE. And that is allowed in "date arithmetic".

In other words you do:
DATE - NUMBER but not:
NUMBER - DATE Igor

-----Original Message-----

From: oracle-l-bounce_at_freelists.org
[mailto:oracle-l-bounce_at_freelists.org] On Behalf Of Jesse, Rich Sent: Thursday, April 13, 2006 9:52 AM
To: oracle-l_at_freelists.org
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
--

http://www.freelists.org/webpage/oracle-l

--

http://www.freelists.org/webpage/oracle-l Received on Thu Apr 13 2006 - 09:37:41 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US