sql >> Databáze >  >> RDS >> PostgreSQL

Jak převést unixové časové razítko na hodnotu data/času v PostgreSQL

V PostgreSQL můžeme použít to_timestamp() funkce pro převod hodnoty časového razítka Unix na hodnotu data/času.

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 jednoduchý příklad k demonstraci:

SELECT to_timestamp(1912995045);

Výsledek:

2030-08-15 03:30:45+00

V tomto případě jsem předal specifickou hodnotu časového razítka Unixu.

Zde je další příklad, který dále ukazuje, jak výsledek odráží poskytnutou hodnotu časového razítka Unix:

SELECT 
    now() AS "Current Date/Time",
    extract(epoch from now()) AS "Unix Timestamp",
    to_timestamp(extract(epoch from now())) AS "And back again...";

Výsledek:

       Current Date/Time       |  Unix Timestamp   |       And back again...       
-------------------------------+-------------------+-------------------------------
 2022-04-19 19:25:27.068737+00 | 1650396327.068737 | 2022-04-19 19:25:27.068737+00

V tomto příkladu jsme použili now() pro výstup aktuálního data a času. Poté jsme použili extract() získat unixové časové razítko z této hodnoty data a času. Nakonec jsme použili to_timestamp() převést zpět na původní hodnotu data a času.

Převést na datum

Výsledek můžeme také přetypovat jako date hodnota pro odstranění časové části:

SELECT to_timestamp(1912995045)::date;

Výsledek:

2030-08-15

  1. Chyba 1022 – Nelze zapisovat; duplicitní klíč v tabulce

  2. Koncepty Oracle High Availability v PostgreSQL

  3. Najděte všechny nečíselné hodnoty ve sloupci v MariaDB

  4. Co představuje double v SQL serveru?