Skip to content

Konverter dato til unixtime i Oracle SQL

Jeg harde brug for at konvertere en TIMESTAMP i Oracle til en UNIX TIMESTAMP. Efter en del søgning fandt jeg frem til at det kunne lade sig gøre med følgende SQL

SELECT (CAST(current_timestamp AS timestamp)) AS the_time, TO_CHAR(round(((TRUNC(cast(current_timestamp AS timestamp), 'MI') - DATE '1970-01-01') * 86400 + EXTRACT(SECOND FROM CAST(current_timestamp AS timestamp))))) AS the_unix_time FROM dual;

Dette er kun et eksempel på hvordan opregningen kan ske, derfor har jeg brugt ‘current_timestamp’ som egentligt ikke benhøves en CAST. Derudover kan der være en lille “regnefejl” da jeg benytter ‘current_timestamp’ flere gange og de vil sikkert være nogle millisekunder mellem som vil kunne give en differance.

Hvis du fjerne ’round’ funktionen vil der komme decimaler på.

Back To Top