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