sql >> データベース >  >> RDS >> PostgreSQL

タイムゾーンを保存するための適切なデータ型は何ですか?

    残念ながら、PostgreSQLはタイムゾーンデータ型を提供していないため、おそらくtextを使用する必要があります 。

    interval 一見論理的なオプションのように見えますが、 一部の用途に適しています。ただし、夏時間を考慮していません。また、同じUTCオフセット内の異なる地域が異なるDSTルールを持っているという事実も考慮していません。

    UTCオフセットからタイムゾーンへの1:1マッピングはありません。

    たとえば、Australia/Sydneyのタイムゾーン (ニューサウスウェールズ)はUTC+10EST )、またはUTC+11EDT )夏時間中。はい、それは同じ頭字語ESTです 米国が使用しているもの。タイムゾーンの頭字語はtzdataデータベースでは一意ではありません。そのため、Pgにはtimezone_abbreviationsがあります。 設定。さらに悪いことに、ブリスベン(クイーンズランド州)はほぼ同じ長さであり、UTC+10 ESTにあります。 ...ただし、夏時間調整がないため、-1になる場合があります。 NSWのDST中にニューサウスウェールズにオフセット。

    更新 :最近、オーストラリアはAを採用しました プレフィックスなので、AESTを使用します その東部はTZの頭字語を示していますが、EST およびWST 引き続き一般的に使用されます。

    混乱しますか?

    保存する必要があるのがUTCオフセットだけの場合 次にinterval 適切です。 タイムゾーンを保存する場合 、textとして保存します 。現時点で検証してタイムゾーンオフセットに変換するのは面倒ですが、少なくともDSTに対応しています。



    1. PHPを使用してmysqlデータベースに画像を保存する方法

    2. SQLServerのcaseステートメントでsetを使用します

    3. テーブルからアイテムを再帰的に削除するにはどうすればよいですか?

    4. SQLのunion句