Lauren,
"BIRTHDATE" (I presume) is already a DATE expression. Why are you running a DATE through a TO_DATE function?
Here is the Oracle rational for your receiving a bogus representation in the first expression is this:
1) Oracle processes expressions from the innermost parentheses outward, then from left to right:
a) 65 * 365.25 = 23741.25
b) BIRTHDATE ("27-SEP-1941") + 23741.25 = 27-SEP-2006
c) 27-SEP-2006 + 1 = 28-SEP-2006
2) By your using the TO_DATE function, Oracle presumes that you are trying to convert a
character string into a DATE expression. But since BIRTHDATE is already a DATE, and your current intermediate expression value is a DATE (28-SEP-2006), Oracle says to itself, "I must convert this date into a string to perform this function."
3) So, Oracle converts the DATE, 28-SEP-2006, from its internal DATE representation into string characters. Oracle's default character format for dates is DD-MON-YY. In your case, the result is "20-SEP-06".
4) Next, Oracle takes that character default format and applies your mask, 'DD/MM/YYYY'. Since your year value is "06", Oracle can only presume that the year is 6 A.D. Thus, your resulting DATE is "28/09/0006".
So, your error resulted from your incorrectly applying an extraneous CHARACTER-to-DATE conversion.
Let us know if this explains your situation to your satisfaction.
![[santa] [santa] [santa]](/data/assets/smilies/santa.gif)
Mufasa
(aka Dave of Sandy, Utah, USA)
[I can provide you with low-cost, remote Database Administration services: see our website and contact me via
www.dasages.com]