sql >> Database >  >> RDS >> Oracle

Converteer een Unix-tijdstempel naar een datumwaarde in Oracle

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.


  1. Automatisch indexbeheer in Azure SQL Database

  2. Het verschil in maanden tussen datums in MySQL

  3. Scans van toewijzingsorders

  4. Geldige modificaties voor SQLite-datum/tijd-functies