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.