how accurate is the following conversion from epoch or unix time to timestamp/date?

e_time is the epoch time being entered.

insert into tablename (date_field)
values (to_date(round(e_time/86400, 0) + 2442588, 'j'));

another way of manipulating the dates around epoch time that i've seen is:

select (to_char(sysdate, 'j') - to_char(to_date('01-JAN-1970', 'DD-MON-YYYY'), 'j'))*86400 + to_char(sysdate, 'sssss')
from dual;

but i just wonder how reliable, efficient, etc these are...

any suggestions would be much apprec.