在 Postgres 中以毫秒为单位转换时间戳
Converting a timestamp in milliseconds in Postgres
我有一个以毫秒为单位的时间戳:
1420066991000
将translates转换为UTC:
Wed Dec 31 2014 23:03:11
当地时间:
Thu Jan 01 2015 00:03:11
但是,如果我尝试使用 to_timestamp 将其转换为 Postgres 中的时间戳,它会给我一个错误的日期时间:
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 配置中遗漏了一些东西,比如一些时区设置?还是错误?
to_timestamp()
转换为unix时间,即时间单位为秒。由于您的数据以毫秒为单位,因此您应该将其除以 1000。
select to_timestamp(1420066991000/1000);
我有一个以毫秒为单位的时间戳:
1420066991000
将translates转换为UTC:
Wed Dec 31 2014 23:03:11
当地时间:
Thu Jan 01 2015 00:03:11
但是,如果我尝试使用 to_timestamp 将其转换为 Postgres 中的时间戳,它会给我一个错误的日期时间:
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 配置中遗漏了一些东西,比如一些时区设置?还是错误?
to_timestamp()
转换为unix时间,即时间单位为秒。由于您的数据以毫秒为单位,因此您应该将其除以 1000。
select to_timestamp(1420066991000/1000);