Преобразование даты из отметки времени в эпоху в postgres - PullRequest
0 голосов
/ 15 октября 2018

Мне нужно выполнить однократное преобразование группы дат (например, 2017-04-22 02: 25: 26.830) в формат эпохи Unix через запрос PostgreSQL

Я пробую вариантыon:

UPDATE items
SET processed_date = date_part('epoch', timestamp processed_date)
WHERE source = 'mysourcevalue'

Поле является текстом и должно возвращать текст

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

По вашему вопросу я не могу сказать, являются ли "даты" строками или временными метками.Но они делают то, что вы хотите:

select v.*,
       extract(epoch from datestr::timestamp),
       date_part('epoch', datestr::timestamp)
from (values ('2017-04-22 02:25:26.830')) v(datestr)

Вы должны быть в состоянии сделать:

UPDATE items
    SET processed_date = date_part('epoch', processed_date::timestamp)::text
WHERE source = 'mysourcevalue';

Я уверен, что Postgres автоматически преобразует число обратно в строку, нобыть явным - это хорошо.

0 голосов
/ 15 октября 2018

Попробуйте это

UPDATE items
SET processed_date = timestamp 'epoch' + processed_date/1000 * interval '1 second'
WHERE source = 'mysourcevalue'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...