Postgres UTC时区vs当地时区

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Postgres UTC时区vs当地时区相关的知识,希望对你有一定的参考价值。

我正在使用PostgreSQL 10.我在3个表中有几个timestamp with timezone列。

我应该在UTC中使用postgresql.conf作为我的默认时区,并在每次会话中不断转换为Europe Athens吗?

或者将Europe Athens作为我的默认值,永远不必转换,但如果其他应用程序访问同一个数据库,则必须转换为他们的时区?

什么是明智的?我想我必须考虑在会话中设置时区是否会影响查询速度。

答案

我应该在postgresql.conf中使用UTC作为我的默认时区,并在每次会话中不断转换为欧洲雅典吗?

不,这是浪费精力,因为无论您选择哪种默认时区,数据库都会以UTC格式存储时间戳

对于带时区的时间戳,内部存储的值始终为UTC(通用协调时间,传统上称为格林威治标准时间,GMT)。具有指定显式时区的输入值将使用该时区的适当偏移量转换为UTC。如果输入字符串中未指定时区,则假定它位于系统的TimeZone参数指示的时区中,并使用时区区域的偏移量转换为UTC。

资料来源:https://www.postgresql.org/docs/10/static/datatype-datetime.html

以上是关于Postgres UTC时区vs当地时区的主要内容,如果未能解决你的问题,请参考以下文章

js将UTC时间转化为当地时区时间

使用 node-postgres 在 utc 中获取 Postgres“没有时区的时间戳”

JSON.NET 将 +00:00 时区解析为当地时间,但 Z 解析为 UTC

linux系统修改系统时间与时区

如何将linux 的本地时间设置为utc时间

使用时区城市坐标和当地时间进行时区转换[重复]