Как преобразовать время эпохи Unix в метки времени в PostgreSQL

Сегодня мы увидим, как напрямую преобразовать строки эпохи Unix в метки времени в PostgreSQL. Допустим, мы храним время эпохи Unix в базе данных в столбце timestamp .

 > выберите временную метку из событий;   

Вывод:

 отметка времени |  ------------ + 1591876140 1591876200 1591876260 1591876320 1591876380 

Проблема

При запросе к базе данных отметки времени в этом формате не очень полезны, поскольку мы не можем определить, какую дату и время представляет строка. Если бы мы могли получить правильное представление даты и времени, будет легче отлаживать данные. PostgreSQL имеет встроенную функцию to_timestamp () , которую можно использовать именно для этой цели.

  prathamesh = # select to_timestamp (1591876380);  

Вывод:

 to_timestamp -------------------- 2020-06-11 17: 23: 00 + 05: 30 

Определенный часовой пояс

Как видите, он возвращает метку времени в часовом поясе системы. В моем случае он возвращает метку времени в IST . Если вам нужна метка времени в другом часовом поясе, вы можете легко сделать это с помощью функции часового пояса.

  prathamesh = # select timezone ('America/New_york', to_timestamp (1591876380  ));  

Вывод:

 часовой пояс ----------------- 2020-06-11  07:53:00 (1 строка) 

Мы можем преобразовать предыдущий запрос следующим образом:

 > select timezone ('America/New_york'  , to_timestamp (timestamp) из событий;  

Функция to_timestamp () также принимает второй аргумент, который определяет формат вывода. список форматов можно найти здесь.


Вы можете посетить мой предыдущий пост о преобразовании строк эпохи Unix в объекты Ruby. Это полезно при преобразовании меток времени в объекты Ruby в Ruby on Приложение Rails.

Оцените статью
nanomode.ru
Добавить комментарий