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

タイムゾーンの夏時間で時間を挿入します

    適切な 方法は、タイムゾーン付きの時間を使用しないことです。 ( timeの間のスペースに注意してください およびzone )設計上壊れているので、まったく。これはSQL標準に含まれているため、Postgresはこのタイプをサポートしていますが、しないことをお勧めします。 それを使用します。この関連する回答の詳細:

    DST で問題が発生しているため 、 timetz (短い名前)は特に悪い選択です。 DSTに対処するための設備が整っていません。 8:00:00かどうかを判断することは不可能です 冬または夏の時間です。

    タイムスタンプ付きタイムスタンプを使用します ( timstamptz 代わりは。日付部分はいつでも破棄できます。 start_time ::timeを使用するだけです ローカルを取得するには timestamptzからの時間 。または、 AT TIME ZONE> タイムゾーンに移調します。

    通常、DSTを自動的に考慮に入れるタイムゾーン名を使用します タイムゾーンの省略形の代わりに。この関連する質問と回答の詳細:

    特定のケースでは、おそらく America / Los_Angelesを使用できます。 ( timestamptzの例 ):

    INSERT INTO mytable(start_time, end_time)
    VALUES
       ('1970-01-01 08:00:00 America/Los_Angeles'
      , '1970-01-01 18:00:00 America/Los_Angeles')
    

    私はこれをチェックして見つけました:

    SELECT * FROM pg_timezone_names 
    WHERE  utc_offset = '-07:00'
    AND    is_dst;
    

    タイムゾーン処理の基本:



    1. テーブルの作成コマンドSQLで正しいParanthesisがありません

    2. RubyPostgreSQLチュートリアル

    3. OracleのSYS_GUID()関数

    4. このコード内のフィールドを別の名前で結合するにはどうすればよいですか?