Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

oracle converter unix epoch time to date


Para converter de milissegundos de época (suponha que época seja 1º de janeiro de 1970):
select to_date('19700101', 'YYYYMMDD') + ( 1 / 24 / 60 / 60 / 1000) * 1322629200000
from dual;

30/11/2011 05:00:00

Para converter essa data de volta para milissegundos:
select (to_date('11/30/2011 05:00:00', 'MM/DD/YYYY HH24:MI:SS') - to_date('19700101', 'YYYYMMDD')) * 24 * 60 * 60 * 1000
from dual;

1322629200000

Se forem segundos em vez de milissegundos, apenas omita a parte 1000 da equação:
select to_date('19700101', 'YYYYMMDD') + ( 1 / 24 / 60 / 60 ) * 1322629200
from dual;

select (to_date('11/30/2011 05:00:00', 'MM/DD/YYYY HH24:MI:SS') - to_date('19700101', 'YYYYMMDD')) * 24 * 60 * 60
from dual;

Espero que ajude.