Postgres UTC时区vs当地时区

时间:2018-01-02 19:36:49

标签: postgresql datetime timezone timestamp timestamp-with-timezone

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

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

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

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

1 个答案:

答案 0 :(得分:1)

  

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

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

  

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

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