我很难处理postgresql和时区。
Postgresql服务器位于UTC时区中。我希望执行一个查询,返回中的日期,另一个带有时区偏移量的时区。
我可以执行一个查询,返回时区中的日期,但是我缺少时区偏移量
base=# SET timezone to 'utc';
SET
base=# select now();
now
------------------------------
2018-04-20 14:58:22.68038+00
(1 row)
base=# SET timezone to 'Europe/Paris';
SET
base=# select now();
now
-------------------------------
2018-04-20 16:58:29.614383+02
(1 row)
base=# SET timezone to 'utc';
SET
base=# select now() AT TIME ZONE 'Europe/Paris';
timezone
----------------------------
2018-04-20 16:59:03.146917 -- missing timezone offset here
(1 row)预期结果
base=# SET timezone to 'utc';
SET
base=# select now() AT TIME ZONE 'Europe/Paris'; --I'm missing something here, I guess
timezone
----------------------------
2018-04-20 16:59:03.146917+02 -- That's what I want
(1 row)你知道怎么做吗?
谢谢
发布于 2018-04-23 09:06:43
TO_CHAR(EXTRACT(hour FROM NOW() AT TIME ZONE 'Europe/Paris' - NOW() AT TIME ZONE 'UTC')排除此用例。SET LOCAL TIME ZONE 'Europe/Paris';吗?根据文件:如果在对同一变量具有SET选项的函数中使用SET LOCAL (请参阅CREATE函数),则SET本地命令的效果在函数退出时消失
另一个答案似乎符合您的要求:How to convert timestamp field to ISO 8601 string in a given time zone?
https://stackoverflow.com/questions/49944856
复制相似问题