Originally posted by Raminder
There has been an interesting discussion on Oracle behaviour with sysdate with reference to time. jmodic has given a good explanation. Hope you will find your answer in this:

http://www.dbasupport.com/forums/sho...threadid=15390
A very educative puzzle and great explanation.

But it is still unclear why Oracle treats built-in and a user defined date functions in different way.
Both functions are called within a SQL statement, not from PL/SQL, SYSDATE is nondeterministic, so is my_sysdate. Both functions are PL/SQL constructions.
Of course, SYSDATE function is called "a SQL built-in function", but in fact it is a PL/SQL code defined in STANDARD package...