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

UTCでの日付と時刻-postgresにそれらを保存する方法は?

    timestamptzを使用する タイムスタンプはUTCで保存されます。ロケールに応じてクライアントに表示します。

    https://www.postgresql.org/docs/current/static /datatype-datetime.html

    更新 Lukaszからのもう1つの良い点 、私は言及しなければなりませんでした:

    そうしないと、日付「2017-12-31」の時刻が「23:01:01」になり、他のタイムゾーンでは実際には時刻が異なるだけでなく、すべての年と月と日が異なる日付になります

    >

    別の更新 ローレンツによる 上記のドキュメントの引用を忘れないでください明示的なタイムゾーンが指定されている入力値は、そのタイムゾーンに適切なオフセットを使用してUTCに変換されます 。つまり、入力日を慎重に管理する必要があります。例:

    t=# create table t(t timestamptz);
    CREATE TABLE
    t=# set timezone to 'GMT+5';
    SET
    t=# insert into t select '2017-01-01 00:00:00';
    INSERT 0 1
    t=# insert into t select '2017-01-01 00:00:00' at time zone 'UTC';
    INSERT 0 1
    t=# insert into t select '2017-01-01 00:00:00+02';
    INSERT 0 1
    t=# select * from t;
               t
    ------------------------
     2017-01-01 00:00:00-05
     2017-01-01 05:00:00-05
     2016-12-31 17:00:00-05
    (3 rows)
    



    1. postgresql 9.3データ型をキャストして、片側だけに影響を与える方法はありますか?

    2. sequelize postgres nodejsを使用して、お互いのようなユーザーはどのように投稿できますか?

    3. WHERE句の列エイリアス

    4. sqlalchemy.exc.DataErrorを修正する方法:(psycopg2.errors.StringDataRightTruncation)?