我需要通过PostgreSQL查询将一堆日期(例如2017-04-22 02:25:26.830)一次性转换为unix纪元格式
我正在尝试以下版本:
UPDATE items
SET processed_date = date_part('epoch', timestamp processed_date)
WHERE source = 'mysourcevalue'
该字段为文本,应返回文本
答案 0 :(得分:0)
尝试一下
UPDATE items
SET processed_date = timestamp 'epoch' + processed_date/1000 * interval '1 second'
WHERE source = 'mysourcevalue'
答案 1 :(得分:0)
我不能从您的问题中看出“日期”是字符串还是时间戳。但是这些可以满足您的要求:
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会自动将数字转换回字符串,但是明确表示很好。