如何解决带有时区偏移量的 PostgreSQL 格式时间戳澳大利亚/悉尼为 JSON/String
我想在 Postgres 中获取一个 JSON 对象,该对象显示带有澳大利亚/悉尼时区偏移的时间戳(夏令时期间为 +10:00 或 +11:00),例如我希望返回具有以下值的 json 对象:
"2021-07-31T23:59:59.123456+10:00"
"2021-01-31T23:59:59.123456+11:00"
但是当我使用 to_json() 或 to_char() 时,返回的时间戳值为 UTC,偏移量为 +00:00
select to_json(current_timestamp::timestamptz),to_char(current_timestamp::timestamptz,'YYYY-MM-DD"T"HH24:MI:SS:MSOF')
"2021-01-31T07:47:22.895185+00:00"
2021-01-31T07:47:22:895+00
我尝试添加“在时区‘AEDT’”,但它改变了时间戳值并将偏移量保持为 +00:00。
谢谢。
解决方法
to_json
根据会话的当前时区设置格式化。我建议您先将会话时区 set 设为 Australia/Sydney
。
set time zone 'Australia/Sydney';
select to_json('2021-01-31T07:47:22.895+00'::timestamptz);
Yields 2021-01-31T18:47:22.895+11:00 我猜这就是你需要的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。