在Postgres中转换时间戳(以毫秒为单位)

时间:2015-02-27 09:31:14

标签: sql postgresql timestamp

我有一个以毫秒为单位的时间戳:

1420066991000

translates表示UTC:

Wed Dec 31 2014 23:03:11

和当地时间:

Thu Jan 01 2015 00:03:11

但是,如果我尝试将其转换为Postgres中的时间戳,使用to_timestamp,它会给我一个错误的日期时间:

select to_timestamp(1420066991000);
46970-02-17 13:03:20+00

自to_timestamp,expects a double precision input以来,我也这样做了:

select to_timestamp(1420066991000.0);
46970-02-17 13:03:20+00

但结果是一样的。

我在Postgres配置中遗漏了什么,比如某些时区设置?还是一个bug?

1 个答案:

答案 0 :(得分:5)

to_timestamp()转换unix时间,即以秒为单位的时间。由于你有数百万的数据,你应该将它除以1000。

select to_timestamp(1420066991000/1000);