So I assume then that since you are storing Date by days that the issue is that an operation may occur at midnight and the same record may then have two different dates for the same data?
I would tend to default to the ToString overloads, but knowing that those will give you string values, you would still need to perform more operations to get what you want.
You can always just use Oracle's SYSDATE for the initial insert and then, to complete your operations do an ExecuteScalar to retrieve that value to complete your operations.
It's not lovely, but it's not too inefficient under the circumstances, and would ensure that you evaluate against the original date that you inserted.....
(Just-in-case: You might keep-in-mind that SYSDATE may well be inserting a full date/time into Oracle too, it's not always going to use that format regardless, so check the storage as well, you may not have nearly the problem that you think you have.....)