時間戳資料類型:深入探討時區儲存
PostgreSQL中的資料型別timestamp和timestamp with timezone 8位元組。雖然它們的名稱表明時區處理方面存在差異,但其儲存的真正本質更為複雜。
1.時間戳:UTC 表示
儘管有其名稱,時間戳資料類型僅將時間點儲存為 UTC 時間戳。它缺少任何時區資訊。因此,儲存需求僅限於 64 位,足以表示特定時刻。
2.帶時區的時間戳:用詞不當
與標題相反,帶時區的時間戳資料類型也僅儲存 UTC 時間戳記。它不保留任何時區資訊。相反,它充當一種機制,在顯示期間根據當前時區設定偏移儲存的 UTC 時間戳記。
3.儲存外部的時區管理
兩種時間戳資料型別都不會明確儲存時區資訊。相反,它是在實際存儲之外進行管理的。當顯示帶有時區的時間戳記時,PostgreSQL 將根據會話的當前時區設定套用偏移量。
4.注意事項和最佳實踐
時區資料類型的時間雖然在SQL 標準中定義,但由於其潛在的模糊性和處理夏令時的困難而帶來了挑戰。通常不鼓勵使用它。
以上是PostgreSQL 中的時間戳與帶時區的時間戳:儲存上的真正差異是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!