Postgres 中的時間戳存儲:揭開時區之謎
在PostgreSQL 中,資料類型timestamp 和timestamp with time的儲存大小8 個位元組。但是,它們在處理時區資訊方面存在顯著差異。
時間戳:無區時間
時間戳資料型別儲存協調世界時中的時間點( UTC)格式。它不包含任何時區資訊。檢索時間戳記時,會根據會話目前的時區設定進行顯示。
帶時區的時間戳:裝飾 UTC 儲存
帶時區的時間戳資料類型也儲存時間點,但它不會直接儲存時區資訊。相反,它充當計算 UTC 時間戳記的偏移量。檢索帶時區的時間戳記時,會將其轉換為使用給定時區的時間戳值,然後相應地顯示。
重要提示:無時區儲存
儘管有其名稱,但帶有時區資料類型的時間戳並不儲存時區本身。這是一個常見的誤解。時區僅用於顯示目的,不用於儲存。
避免 Time with Time Zone
而 timestamp with time zone 資料型別是在 SQL 中定義的標準,不鼓勵使用它。它本質上是不明確的,在處理夏令時 (DST) 時可能會導致錯誤。
以上是Postgres 中的時間戳與帶時區的時間戳:真正的區別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!