I Oracle Database kan vi bruge følgende teknik til at returnere en dato fra en Unix-tidsstempelværdi.
Unix-tidsstemplet (også kendt som Unix Epoch-tid, Unix-tid eller POSIX-tid) er det antal sekunder, der er gået siden 00:00:00 torsdag den 1. januar 1970, Coordinated Universal Time (UTC).
Eksempel
Her er et eksempel på at konvertere et Unix-tidsstempel til en DATE værdi:
SELECT
TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL; Resultat:
18-APR-22
Her bruger vi TO_DATE() funktion til at konstruere en dato 1970-01-01. Vi tilføjer derefter vores Unix-tidsstempel til den dato for at få vores resultat. I dette tilfælde bruger vi NUMTODSINTERVAL() at konvertere Unix-tidsstemplet til et interval værdi. Resultatet er en DATE værdi.
Hent dato og klokkeslæt
Vi kan bruge TO_TIMESTAMP() funktion til at udskrive et timestamp værdi:
SELECT
TO_TIMESTAMP( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL; Resultat:
18-APR-22 10.31.13.000000 PM
En anden måde at gøre det på er sådan her:
SELECT TO_CHAR(
TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + numtodsinterval( 1650321073, 'SECOND' ),
'YYYY-MM-DD HH24:MI:SS'
)
FROM DUAL; Resultat:
2022-04-18 22:31:13
Her bruger vi TO_CHAR() funktion til at udlæse resultatet returneret af TO_DATE() i vores foretrukne format. Denne funktion returnerer sit resultat som en VARCHAR2 værdi.