In Oracle Database, possiamo utilizzare la tecnica seguente per restituire una data da un valore di timestamp Unix.
Il timestamp Unix (noto anche come Unix Epoch time, Unix time o POSIX time) è il numero di secondi trascorsi dalle 00:00:00 di giovedì 1 gennaio 1970, Coordinated Universal Time (UTC).
Esempio
Ecco un esempio di conversione di un timestamp Unix in un DATE
valore:
SELECT
TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL;
Risultato:
18-APR-22
Qui utilizziamo il TO_DATE()
funzione per costruire una data di 1970-01-01. Quindi aggiungiamo il nostro timestamp Unix a quella data per ottenere il nostro risultato. In questo caso, utilizziamo NUMTODSINTERVAL()
per convertire il timestamp Unix in un interval
valore. Il risultato è un DATE
valore.
Ottieni la data e l'ora
Possiamo usare TO_TIMESTAMP()
funzione per produrre un timestamp
valore:
SELECT
TO_TIMESTAMP( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL;
Risultato:
18-APR-22 10.31.13.000000 PM
Un altro modo per farlo è questo:
SELECT TO_CHAR(
TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + numtodsinterval( 1650321073, 'SECOND' ),
'YYYY-MM-DD HH24:MI:SS'
)
FROM DUAL;
Risultato:
2022-04-18 22:31:13
Qui utilizziamo il TO_CHAR()
funzione per produrre il risultato restituito da TO_DATE()
nel nostro formato preferito. Questa funzione restituisce il risultato come VARCHAR2
valore.