タイムスタンプ データ型: タイム ゾーン ストレージの詳細
PostgreSQL のデータ型タイムスタンプとタイムゾーン付きタイムスタンプは、どちらも共通のストレージ形式を共有しています。 8バイトを使用します。これらの名前はタイム ゾーンの処理の違いを示唆していますが、ストレージの本当の性質はより複雑です。
1.タイムスタンプ: UTC 表現
その名前にもかかわらず、タイムスタンプ データ型は、時点のみを UTC タイムスタンプとして保存します。タイムゾーン情報がありません。したがって、ストレージ要件は、特定の瞬間を表すのに十分な 64 ビットに制限されます。
2.タイムゾーン付きタイムスタンプ: 誤称
そのタイトルに反して、タイムゾーン付きタイムスタンプ データ型も UTC タイムスタンプのみを保存します。タイムゾーン情報は保持されません。代わりに、表示中に現在のタイムゾーン設定に基づいて保存された UTC タイムスタンプをオフセットするメカニズムとして機能します。
3.ストレージ外部のタイム ゾーン管理
どちらのタイムスタンプ データ型も、タイム ゾーン情報を明示的に保存しません。代わりに、実際のストレージの外部で管理されます。タイムゾーン付きのタイムスタンプを表示する場合、PostgreSQL はセッションの現在のタイムゾーン設定に基づいてオフセットを適用します。
4.注意事項とベスト プラクティス
タイムゾーン付き時刻データ型は SQL 標準で定義されていますが、あいまいさの可能性と夏時間の処理の難しさにより課題が生じます。通常、その使用は推奨されません。
以上がPostgreSQL のタイムスタンプとタイムゾーン付きタイムスタンプ: ストレージにおける本当の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。