Postgresql

作業系統時區更改對 Postgres 數據庫的影響

  • July 5, 2016

我想將作業系統時區更改為 UTC。這將使時間向後移動 2 小時。這可能會以任何方式損壞數據(例如覆蓋數據)嗎?我應該怎麼做才能安全地更改作業系統時區?

如果您在 中為 Postgres 數據庫集群設置了時區postgresql.conf,那麼更改伺服器作業系統的時區將根本不會影響您的數據庫 - 只要您實際上不更改時間本身,而不僅僅是時區.

您需要確保沒有任何客戶端程序將本地時間提供給數據庫,這實際上會隨著伺服器的時區設置而改變。

timestamptz在使用數據類型( timestamp with time zone)操作時,甚至 Postgres 伺服器的時區也與數據無關。只有顯示調整為timezone每個會話的設置 - 除非另有說明,否則預設為數據庫集群的設置。但價值始終相同。

但是,它對timestamp( timestamp without time zone) 很重要。並且無論何時將 atimestamptz轉換為timestampor date(並且該AT TIME ZONE構造未明確提供時區),它也很重要。這甚至可能隱藏在轉換或格式化時間數據的表達式中。timezone當會話設置發生變化時,所有這些都將顯示兩個小時的實際時移。

有關的:

引用自:https://dba.stackexchange.com/questions/142902