sql >> Databasteknik >  >> RDS >> Oracle

Konvertera en Unix-tidsstämpel till ett datumvärde i Oracle

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.


  1. hibernate kunde inte hämta nästa sekvensvärde

  2. Vilka är de huvudsakliga prestandaskillnaderna mellan varchar och nvarchar SQL Server-datatyper?

  3. Hur ändrar jag fält i den nya PostgreSQL JSON-datatypen?

  4. De 50 bästa MySQL-intervjufrågorna du måste förbereda 2022