Postgres のタイムスタンプ ストレージ: タイム ゾーンの謎を解明する
PostgreSQL では、データ型タイムスタンプとタイム ゾーン付きタイムスタンプは共通のストレージ サイズを共有します。 8バイトの。ただし、タイム ゾーン情報の処理が大きく異なります。
タイムスタンプ: ゾーンなしの時間
タイムスタンプ データ型は、協定世界時 ( UTC)形式。タイムゾーン情報は含まれません。タイムスタンプを取得する場合、セッションの現在のタイム ゾーン設定に従って表示されます。
タイム ゾーン付きタイムスタンプ: 装飾された UTC ストレージ
タイム ゾーン付きタイムスタンプデータ型には特定の時点も格納されますが、タイム ゾーン情報は直接格納されません。代わりに、UTC タイムスタンプを計算するためのオフセットとして機能します。タイムゾーンを含むタイムスタンプを取得する場合、指定されたタイムゾーンを使用してタイムスタンプ値に変換され、それに応じて表示されます。
重要な注意: タイムゾーンの保存はありません
その名前にもかかわらず、タイム ゾーン付きタイムスタンプ データ型にはタイム ゾーン自体は保存されません。これはよくある誤解です。タイム ゾーンは表示目的のみに使用され、保存には使用されません。
タイム ゾーンを含む時刻を避ける
タイム ゾーンを含むタイムスタンプ データ型が SQL で定義されている間、標準に準拠しているため、その使用は推奨されません。これは本質的に曖昧であり、夏時間 (DST) を扱うときにエラーが発生する可能性があります。
以上がPostgres のタイムスタンプとタイムゾーン付きタイムスタンプ: 本当の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。