No Oracle Database, podemos usar a técnica a seguir para retornar uma data de um valor de carimbo de data/hora Unix.
O timestamp Unix (também conhecido como Unix Epoch time, Unix time ou POSIX time) é o número de segundos decorridos desde 00:00:00 de quinta-feira, 1 de janeiro de 1970, Coordinated Universal Time (UTC).
Exemplo
Aqui está um exemplo de conversão de um timestamp Unix para um
DATE
valor:SELECT
TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL;
Resultado:
18-APR-22
Aqui, usamos o
TO_DATE()
função para construir uma data de 1970-01-01. Em seguida, adicionamos nosso timestamp Unix a essa data para obter nosso resultado. Neste caso, usamos NUMTODSINTERVAL()
para converter o timestamp Unix em um interval
valor. O resultado é uma DATE
valor. Obter a data e hora
Podemos usar o
TO_TIMESTAMP()
função para gerar um timestamp
valor:SELECT
TO_TIMESTAMP( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL;
Resultado:
18-APR-22 10.31.13.000000 PM
Outra forma de fazer é assim:
SELECT TO_CHAR(
TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + numtodsinterval( 1650321073, 'SECOND' ),
'YYYY-MM-DD HH24:MI:SS'
)
FROM DUAL;
Resultado:
2022-04-18 22:31:13
Aqui, usamos o
TO_CHAR()
função para gerar o resultado retornado por TO_DATE()
em nosso formato preferido. Esta função retorna seu resultado como um VARCHAR2
valor.