Postgresql 为什么博士后的时区在1967/68年前后发生变化?
在9.3.3中,如果运行:Postgresql 为什么博士后的时区在1967/68年前后发生变化?,postgresql,timezone,timestamp-with-timezone,Postgresql,Timezone,Timestamp With Timezone,在9.3.3中,如果运行: 选择 摘录(时区为“1911-03-01 00:00-8:00:00”的时间戳中的时区), 摘录(时区为“1911-05-15 00:00-8:00:00”的时间戳中的时区), 摘录(时区为“1917-03-01 00:00-8:00:00”的时间戳中的时区), 摘录(时区为“1917-05-15 00:00-8:00:00”的时间戳中的时区), 摘录(时区为“1967-03-01 00:00-8:00:00”的时间戳中的时区), 摘录(时区为“1967-05-15
选择
摘录(时区为“1911-03-01 00:00-8:00:00”的时间戳中的时区),
摘录(时区为“1911-05-15 00:00-8:00:00”的时间戳中的时区),
摘录(时区为“1917-03-01 00:00-8:00:00”的时间戳中的时区),
摘录(时区为“1917-05-15 00:00-8:00:00”的时间戳中的时区),
摘录(时区为“1967-03-01 00:00-8:00:00”的时间戳中的时区),
摘录(时区为“1967-05-15 00:00-8:00:00”的时间戳中的时区),
摘录(时区为“1968-03-01 00:00-8:00:00”的时间戳中的时区),
摘录(时区为“1968-05-15 00:00-8:00:00”的时间戳中的时区);
结果如下:
0;0;
0;3600;
0;3600;
3600;3600
(第一次是拉斯维加斯的成立日,接下来的几次是我用来调试这个问题的)
似乎在1911年前后没有偏移量,在1911年和1967年之间的夏季偏移量,而不是冬季偏移量,从1968年起一直有偏移量。这似乎有点奇怪。有人知道这里的偏移量是怎么回事吗?这是否是预期的行为,或者我的linux设置中是否有我可能更改的内容?您的时区规则是依法制定的,法律也会改变。您的时区规则是依法制定的,法律也改变了。如果你想存储拉斯维加斯的(本地)时钟在城市建立当天标记为00:00:00的时刻,并且假设拉斯维加斯使用的偏移量为-8小时,那么你应该将
1911-03-01 00:00-8:00:00::timezonetx
存储在timezonetx
字段中。但是,请注意,真正存储的只是“通用瞬间”,当您读取它时,您无法知道它对应于哪个“拉斯维加斯本地时间”(除非您在读取后明确地将其转换为时区)。如果您要存储(本地)的瞬间拉斯维加斯的时钟在城市建立的当天标记为00:00:00,假设拉斯维加斯使用的偏移量为-8小时,则应将1911-03-01 00:00-8:00:00::timezonetx
存储在timezonetx
字段中。然而,请注意,真正存储的只是“通用瞬间”,当你阅读它时,你无法知道它对应的是哪个“拉斯维加斯当地时间”(除非你在阅读后明确地将其转换为时区)。时区因各种原因而改变
夏时制规则改变了
有时,如果国家出于政治原因重新定义时区,时区补偿也会发生变化
规范的时区信息数据库是,过去称为奥尔森数据库。有各种各样的
如果您希望将特定时刻存储在挂钟时间中,而不考虑时区,则可以使用不带时区的时间戳
带时区的时间戳
对输入和输出的系统时区
设置敏感,并以绝对秒的形式存储在UTC时间中。所以它被转换为输入和输出。如果您想要不同的转换或覆盖转换,可以使用AT TIME ZONE
操作符。时区因各种原因而改变
夏时制规则改变了
有时,如果国家出于政治原因重新定义时区,时区补偿也会发生变化
规范的时区信息数据库是,过去称为奥尔森数据库。有各种各样的
如果您希望将特定时刻存储在挂钟时间中,而不考虑时区,则可以使用不带时区的时间戳
带时区的时间戳
对输入和输出的系统时区
设置敏感,并以绝对秒的形式存储在UTC时间中。所以它被转换为输入和输出。如果您想要不同的转换或覆盖转换,您可以使用AT TIME ZONE
操作符。实际上取决于您的时区。1966年,将于1967年举行。各州需要通过法律来结束这一局面,这意味着在许多地区,1967年是唯一使用DST的一年。这可能会导致一些非常有趣的小故障,除了1967/68年的日期外,其他日期的行为都正常。实际上取决于你的时区。1966年,将于1967年举行。各州需要通过法律来结束这一局面,这意味着在许多地区,1967年是唯一使用DST的一年。这可能会导致一些非常有趣的小故障,除了1967/68年的日期外,其他日期的行为都很正常。您的时区是哪一个?我在伦敦,刚刚切换到夏令时(因此我正在调查时区!)。我不是问您的“真实”时区,而是问您在postgresql中配置的时区(这会影响结果). 运行`显示时区`“-8:00:00”不是时区!这只是一个偏移量。你的时区是哪一个?我在伦敦,刚刚转到夏令时(因此我在调查时区!)。我不是问你的“真实”时区,而是问你在postgresql中配置的时区(这会影响结果)。运行`显示时区`“-8:00:00”不是时区!这只是一个偏移量。这些定律是否列举在某个地方,这样我就可以确定它为什么会这样?下面是zoneinfo db的一个公共报告,以人类可读的格式:。寻找《太平洋时间》杂志的洛杉矶,没有提到1911年到1921年之间事情发生变化的原因(看看第400行)。@WilliamBecker,你在“GB”时间,而不是太平洋时间。如果你想让PostgreSQL表现得像在另一个区域一样,你必须让它这样做。我没有。我只是很困惑,当我给它一个明确的偏移量时,我的本地时区将如何影响保存在带有时区的时间戳中的数据。我认为偏移量是相对于UTC的,而不是我的本地时间。这是一个,所以应该是从