【发布时间】:2020-05-05 15:09:05
【问题描述】:
我有一台在 UTC 时间的服务器和一台在 EST 的服务器。现在我从 UTC 数据库中转储数据库并将其导入 EST 数据库。由于时间戳始终保存为 UTC,因此我找不到为同一查询获得两个不同结果的原因:
选择时区'UTC'的reported_on,按reported_on desc从数据顺序中选择温度;
UTC 服务器:
temperature | device | timezone
-------------+--------------------------------------+----------------------------
17.2 | ------------------------------------ | 2020-05-05 12:13:16.256+00
EST 服务器:
temperature | device | timezone
-------------+--------------------------------------+----------------------------
17.2 | ------------------------------------ | 2020-05-05 14:13:16.256+02
我在这里缺少什么?如何在没有时区的情况下查询数据,我需要 UTC 时间,而不是 +02 时间?我怎样才能做到这一点?
编辑: 我通过nodejs添加了这些行:
INSERT INTO data(device, reported_on, temperature, humidity) VALUES($1, to_timestamp(' + Date.now() /1000.0 + '), $2, $3) RETURNING *
列的类型是: 在 TIMESTAMP 上报告,
更新: 更改时区解决了这个问题!
ALTER DATABASE sensors SET timezone TO 'UTC';
SELECT pg_reload_conf();
【问题讨论】:
-
"由于时间戳总是保存为 UTC" - 您能告诉我们表格是如何定义的以及您是如何插入时间的吗?
-
我已将信息添加到原始问题中。该行定义为时间戳
标签: postgresql