web-dev-qa-db-ja.com

postgresがタイムゾーンのタイムスタンプよりもタイムゾーンの時間に多くのスペースを使用するのはなぜですか?

documentation on date/timeデータ型では、timestamp with timezoneは8バイト、time with timezoneは12バイトであると記載されています。どちらも同じ解像度(1マイクロ秒)であり、表面的にはtimestamp with timezoneがより多くの情報を格納しています。

誰かがこの振る舞いを説明できますか?

同じページで説明されている理由により、time with timezoneを使用する予定はありません。

4
Matthew Finlay

time with time zoneは、マイクロ秒(8バイト)とタイムゾーン(4バイト)を格納します。 timestamp with time zoneはマイクロ秒のみを格納し、表示時にタイムゾーンを変換します。 time with time zoneタイプの概念的な奇妙さのため、タイムゾーンは明示的に保存する必要があります。 1日のマイクロ秒数を格納するのに実際には8バイトは必要ありませんが、4バイトでは十分ではありません。本当に必要な場合は、time with time zoneのよりコンパクトなストレージ形式を考案することもできますが、実際には誰も気にしません。

8