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@(protected) [mailto:oracle-l-bounce@(protected)] On Behalf Of Jesse, Rich Sent: Thursday, April 13, 2006 9:52 AM To: oracle-l@(protected) 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;