PostgreSQL文档非常详尽和有用:
PostgreSQL数据类型timestamp with timezone存储日期、时间和UTC偏移量(+ve为东格林威治)。
我进一步推断并怀疑这是真的:
PostgreSQL数据类型timestamp with timezone存储日期、时间和UTC偏移量(+ve为东格林威治),到分钟分辨率。
我的问题与这些推断有关。它们是否正确,如果是,可以提供什么证据来确认它们,如果不是,可以提供什么证据来反驳它们。
这很有趣的主要原因是,如果这是真的,那么PostgreSQL只接受由表pg_timezone_names中存储的时区名称或缩写,并且仅存储UTC偏移量,从而丢失DST信息。
这意味着,为了在将来向读者提供实际的时区名称(如表pg_timezone_names中定义的),必须将其显式地存储在其旁边的列中,以使其与timestamp with timezone一起使用。
目前我感兴趣的主要原因是,我有一个相当聪明的方式来呈现能够记录地球上任何事件时间的时间。即如果记录的时间在用户当前时区,则将其报告为简单的日期/时间(没有时区信息),仅当它在与读者不同的时区时,报告时区信息(甚至时区名称可能比UTC偏移更友好)。
看起来,如果我想在网站上实现这种上下文敏感的呈现,我将被迫在我的事件时间旁边存储时区名称(以及我存储的任何其他时区感知日期/时间)。但是,基于推断而不是知识做出这样的承诺让我感到不安,我希望有一些支持或反驳这些推论的证据。
https://www.postgresql.org/docs/9.2/datatype-datetime.html#DATATYPE-TIMEZONES
但似乎在一个相当有用的点上忽视了清晰度,需要更多的明确性和帮助。阅读文档和各种相关的stackoverflow问题和回答后,我怀疑以下内容是正确的:PostgreSQL数据类型timestamp with timezone存储日期、时间和UTC偏移量(+ve为东格林威治)。
我进一步推断并怀疑这是真的:
PostgreSQL数据类型timestamp with timezone存储日期、时间和UTC偏移量(+ve为东格林威治),到分钟分辨率。
我的问题与这些推断有关。它们是否正确,如果是,可以提供什么证据来确认它们,如果不是,可以提供什么证据来反驳它们。
这很有趣的主要原因是,如果这是真的,那么PostgreSQL只接受由表pg_timezone_names中存储的时区名称或缩写,并且仅存储UTC偏移量,从而丢失DST信息。
这意味着,为了在将来向读者提供实际的时区名称(如表pg_timezone_names中定义的),必须将其显式地存储在其旁边的列中,以使其与timestamp with timezone一起使用。
目前我感兴趣的主要原因是,我有一个相当聪明的方式来呈现能够记录地球上任何事件时间的时间。即如果记录的时间在用户当前时区,则将其报告为简单的日期/时间(没有时区信息),仅当它在与读者不同的时区时,报告时区信息(甚至时区名称可能比UTC偏移更友好)。
看起来,如果我想在网站上实现这种上下文敏感的呈现,我将被迫在我的事件时间旁边存储时区名称(以及我存储的任何其他时区感知日期/时间)。但是,基于推断而不是知识做出这样的承诺让我感到不安,我希望有一些支持或反驳这些推论的证据。