【发布时间】:2012-02-04 11:59:44
【问题描述】:
根据前两个答案,问题与最初发布的一样不清楚,因此我完全重写它:
以下问题仅与存储数据的方式和内容有关,与检索时转换数据无关。因此,在 SELECT 转换到所需的时区不是一个合适的答案。
将值插入带时区的时间戳字段时,将检索(并因此可能存储)该值,并在插入时将时间戳转换为数据库的本地时区。
也就是说,插入为2012-01-01 00:00:00+00:00 的时间戳被检索为2011-12-31 19:00:00-05,其中插入时数据库的本地时区为-05。使用-04 时区返回在夏时制期间插入的时间戳,当时数据库位于-04。
我想要的是所有时间戳在存储时使用任意时区(因此所有时间戳都可以在没有任何额外工作的情况下检索到该时区)。也就是说,如果服务器绕地球运行,那么所有时间都将在+00:00(任意时区),而不是-12:00 到+12:00。
我可以插入带有时区的时间戳列,以便所有时间戳都相对于任意时区存储吗?如果有,怎么做?
原文如下。
将值插入timestamp with time zone 字段时,将转换为服务器的当前时区。
示例:如果我插入一个指定时区-1 的值,检索它将返回-5 的时间(插入时服务器的时区)。
是否可以指定使用任意时区存储?
注意:这个问题不是如何将返回的时间转换为另一个时区,这是特定于时间是如何存储的。
【问题讨论】:
标签: postgresql timezone