In Oracle Database kunnen we de volgende techniek gebruiken om een datum te retourneren uit een Unix-tijdstempelwaarde.
De Unix-tijdstempel (ook bekend als Unix Epoch-tijd, Unix-tijd of POSIX-tijd) is het aantal seconden dat is verstreken sinds 00:00:00 donderdag 1 januari 1970 Coordinated Universal Time (UTC).
Voorbeeld
Hier is een voorbeeld van het converteren van een Unix-tijdstempel naar een DATE
waarde:
SELECT
TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL;
Resultaat:
18-APR-22
Hier gebruiken we de TO_DATE()
functie om een datum van 1970/01/01 te construeren. We voegen dan onze Unix-tijdstempel toe aan die datum om ons resultaat te krijgen. In dit geval gebruiken we NUMTODSINTERVAL()
om de Unix-tijdstempel om te zetten in een interval
waarde. Het resultaat is een DATE
waarde.
De datum en tijd ophalen
We kunnen de TO_TIMESTAMP()
. gebruiken functie om een timestamp
uit te voeren waarde:
SELECT
TO_TIMESTAMP( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL;
Resultaat:
18-APR-22 10.31.13.000000 PM
Een andere manier om dit te doen is als volgt:
SELECT TO_CHAR(
TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + numtodsinterval( 1650321073, 'SECOND' ),
'YYYY-MM-DD HH24:MI:SS'
)
FROM DUAL;
Resultaat:
2022-04-18 22:31:13
Hier gebruiken we de TO_CHAR()
functie om het resultaat uit te voeren dat is geretourneerd door TO_DATE()
in ons favoriete formaat. Deze functie retourneert het resultaat als een VARCHAR2
waarde.