Postgresql
作業系統時區更改對 Postgres 數據庫的影響
我想將作業系統時區更改為 UTC。這將使時間向後移動 2 小時。這可能會以任何方式損壞數據(例如覆蓋數據)嗎?我應該怎麼做才能安全地更改作業系統時區?
如果您在 中為 Postgres 數據庫集群設置了時區
postgresql.conf
,那麼更改伺服器作業系統的時區將根本不會影響您的數據庫 - 只要您實際上不更改時間本身,而不僅僅是時區.您需要確保沒有任何客戶端程序將本地時間提供給數據庫,這實際上會隨著伺服器的時區設置而改變。
timestamptz
在使用數據類型(timestamp with time zone
)操作時,甚至 Postgres 伺服器的時區也與數據無關。只有顯示調整為timezone
每個會話的設置 - 除非另有說明,否則預設為數據庫集群的設置。但價值始終相同。但是,它對
timestamp
(timestamp without time zone
) 很重要。並且無論何時將 atimestamptz
轉換為timestamp
ordate
(並且該AT TIME ZONE
構造未明確提供時區),它也很重要。這甚至可能隱藏在轉換或格式化時間數據的表達式中。timezone
當會話設置發生變化時,所有這些都將顯示兩個小時的實際時移。有關的: