在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应该添加到格式字符串中以获取时区,但它不起作用。
如何格式化此字符串,使其包含初始日期时间字符串的时区?
答案 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'