Nenad,
How about one "what if" (based on a bug pattern seen in an older version of
Oracle) before doing anything complicated.
What if: the thing creating the timestamp for the transaction is dividing a
counter by the wrong power of 10 before adding seconds to the database
startup time. If you check v$instance.startup_time + v$timer.hsecs/(100 *
86400) at the start of the transaction that should (I think) be very close
to sysdate: can you get your transaction start time by dividing hsecs by a
couple more powers of 10 ?
Regards
Jonathan Lewis