В PostgreSQL можем да използваме to_timestamp()
функция за преобразуване на стойност на времеви печат на Unix в стойност за дата/час.
Unix timestamp (известен също като Unix Epoch time, Unix time или POSIX time) е броят на секундите, които са изминали от 00:00:00 четвъртък, 1 януари 1970 г., координирано универсално време (UTC).
Пример
Ето един прост пример за демонстрация:
SELECT to_timestamp(1912995045);
Резултат:
2030-08-15 03:30:45+00
В този случай предадох конкретна стойност за времеви печат на Unix.
Ето още един пример, който допълнително демонстрира как резултатът отразява предоставената стойност на времевия печат на Unix:
SELECT
now() AS "Current Date/Time",
extract(epoch from now()) AS "Unix Timestamp",
to_timestamp(extract(epoch from now())) AS "And back again...";
Резултат:
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
В този пример използвахме now()
за извеждане на текущата дата и час. След това използвахме extract()
за да получите клеймото за време на Unix от тази стойност за дата и час. Накрая използвахме to_timestamp()
за да го преобразувате обратно в оригиналната стойност на датата и часа.
Преобразуване в дата
Можем също да предадем резултата като date
стойност за елиминиране на времевата част:
SELECT to_timestamp(1912995045)::date;
Резултат:
2030-08-15