Postgres:JSONB字符串与TZ的时间戳

时间:2015-05-28 08:43:13

标签: json postgresql

在postgres数据库(9.4)中,我将数据保存为JSON对象。包括一些datetime元素。为了在sql查询中进行时间比较,我必须将此字符串转换为时间戳。我试过这个问题:

SELECT to_timestamp('2015-05-22T10:56:04.949Z','YYYY-MM-DD HH:MI:SS.MS');
-- dummy query just to test converting

OUTPUT: 2015-05-22 10:56:04.949+03

它工作得很好,除了,我无法弄清楚如何在那里包含时区参数。这个字符串是UTC时间10:56 AM,如果我运行此查询,我将在+03时区得到10:56(+ 03是我的本地时区)。根据Postgres文档,TZ应该添加到格式字符串中以获取时区,但它不起作用。

如何格式化此字符串,使其包含初始日期时间字符串的时区?

1 个答案:

答案 0 :(得分:2)

据我所知,无法从字符串中解析时区 但是,如果您知道时间戳始终是UTC时区,则可以使用:

SELECT to_timestamp('2015-05-22T10:56:04.949Z','YYYY-MM-DD HH:MI:SS.MS')::timestamp at time zone '00:00'