Конвертировать дату из долгого времени postgres - PullRequest
18 голосов
/ 24 октября 2011

Я хочу выбрать дату (читаемую строку) из времени эпохи из одного столбца, который имеет время в long миллисекундах в postgres, таких как

select *, to_date(time in milli sec) from mytable

как это сделать?

Ответы [ 4 ]

29 голосов
/ 24 октября 2011

использование

select *, to_timestamp(time in milli sec / 1000) from mytable

Для справки см. Документацию postgres по адресу http://www.postgresql.org/docs/9.0/static/functions-formatting.html

18 голосов
/ 24 октября 2011
SELECT timestamp 'epoch' + time_in_millisec * interval '1 ms'
FROM   mytable;

См. Руководство здесь.

2 голосов
/ 13 ноября 2015

за миллисекунды

SELECT timestamp 'epoch' + proyecto.fecha_inicio * interval '1 ms'
from proyecto.proyecto
where proyecto.fecha_inicio is not null

За секунды

SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 982384720 * INTERVAL '1 second';

В руководстве: http://www.postgresql.org/docs/current/interactive/functions-datetime.html.

Строка: .. «Вот как вы можете преобразовать значение эпохи обратно в отметку времени» ..

0 голосов
/ 28 февраля 2019

Исходный вопрос был связан с типом данных Date, но все ответы на данный момент относятся к типу данных Timestamp.

Один из способов преобразования миллисекунд в дату:

SELECT DATE(any_time_field_containing_milliseconds/ 1000) FROM mytable;

Похоже, что используется часовой пояс, определенный для базы данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...