sql >> Databáze >  >> RDS >> Oracle

Převeďte Unixové časové razítko na hodnotu data v Oracle

V databázi Oracle můžeme k vrácení data z hodnoty časového razítka Unix použít následující techniku.

Unixové časové razítko (také známé jako Unix Epoch time, Unix time nebo POSIX time) je počet sekund, které uplynuly od 00:00:00 čtvrtek 1. ledna 1970 koordinovaného světového času (UTC).

Příklad

Zde je příklad převodu unixového časového razítka na DATE hodnota:

SELECT 
    TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL;

Výsledek:

18-APR-22

Zde používáme TO_DATE() funkce ke konstrukci data 1970-01-01. K tomuto datu pak přidáme naše unixové časové razítko, abychom získali náš výsledek. V tomto případě použijeme NUMTODSINTERVAL() převést unixové časové razítko na interval hodnota. Výsledkem je DATE hodnotu.

Získejte datum a čas

Můžeme použít TO_TIMESTAMP() funkce pro výstup timestamp hodnota:

SELECT 
    TO_TIMESTAMP( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL;

Výsledek:

18-APR-22 10.31.13.000000 PM

Další způsob, jak to udělat, je tento:

SELECT TO_CHAR( 
    TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + numtodsinterval( 1650321073, 'SECOND' ), 
    'YYYY-MM-DD HH24:MI:SS'
    )
FROM DUAL;

Výsledek:

2022-04-18 22:31:13

Zde používáme TO_CHAR() funkce pro výstup výsledku vráceného TO_DATE() v námi preferovaném formátu. Tato funkce vrátí výsledek jako VARCHAR2 hodnotu.


  1. Funkce NLS_CHARSET_DECL_LEN() v Oracle

  2. Migrace schématu:Vztah ke hvězdě

  3. Najít odkazující entity na SQL Server:sys.dm_sql_referencing_entities()

  4. Předávání seznamu<> do SQL uložené procedury