I Oracle Database kan vi använda följande teknik för att returnera ett datum från ett Unix-tidsstämpelvärde.
Unix-tidsstämpeln (även känd som Unix Epoch-tid, Unix-tid eller POSIX-tid) är antalet sekunder som har förflutit sedan 00:00:00 torsdagen den 1 januari 1970, Coordinated Universal Time (UTC).
Exempel
Här är ett exempel på att konvertera en Unix-tidsstämpel till en DATE
värde:
SELECT
TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL;
Resultat:
18-APR-22
Här använder vi TO_DATE()
funktion för att konstruera ett datum 1970-01-01. Vi lägger sedan till vår Unix-tidsstämpel till det datumet för att få vårt resultat. I det här fallet använder vi NUMTODSINTERVAL()
för att konvertera Unix-tidsstämpeln till ett interval
värde. Resultatet är en DATE
värde.
Hämta datum och tid
Vi kan använda TO_TIMESTAMP()
funktion för att mata ut en timestamp
värde:
SELECT
TO_TIMESTAMP( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL;
Resultat:
18-APR-22 10.31.13.000000 PM
Ett annat sätt att göra det är så här:
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
Här använder vi TO_CHAR()
funktion för att mata ut resultatet som returneras av TO_DATE()
i vårt föredragna format. Denna funktion returnerar sitt resultat som en VARCHAR2
värde.