sql >> Database teknologi >  >> RDS >> Oracle

Konverter et Unix-tidsstempel til en datoværdi i Oracle

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.


  1. SQL Inner Join – Sådan forbinder du 3 tabeller i SQL og MySQL

  2. Let til Oracle

  3. Tilføj timer til en tidsværdi i PostgreSQL

  4. Fjernede ved et uheld postgres standard superbruger privilegier - kan jeg få det tilbage?