これは、やや誤解を招くタイプ名に起因する単なる誤解です。タイムゾーン自体はまったく保存されません 。これは、実際に保存されているUTCタイムスタンプ(入力)を計算するためのオフセットとして機能します。または、現在または指定されたタイムゾーン(出力)に応じたタイムスタンプの表示のデコレータとして。これはすべてSQL標準に準拠しています。
ゾーン情報は保存されず、特定の時点のみが保存されます。そのため、64ビットの情報で十分です。タイムスタンプは、セッションの現在のタイムゾーン設定に従ってクライアントに表示されます。
詳細:
- RailsとPostgreSQLでタイムゾーンを完全に無視する
また、ジョンが言及したので、time with time zone
はSQL標準で定義されているため、Postgresで実装されていますが、その使用は推奨されていません:
time with time zone
はSQL標準で定義されていますが、定義には疑わしい有用性につながるプロパティが示されています。
これは本質的にあいまいなタイプであり、DSTを適切に処理できません。