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

PostgreSQLのタイムゾーンがある場合とない場合のタイムスタンプの違い

    違いは、日付/時刻タイプのPostgreSQLドキュメントで説明されています。はい、TIMEの扱い またはTIMESTAMP 1つのWITH TIME ZONEで異なります またはWITHOUT TIME ZONE 。値の保存方法には影響しません。解釈方法に影響します。

    これらのデータ型に対するタイムゾーンの影響については、特にドキュメントで説明されています。違いは、システムが値について合理的に知ることができるものから生じます:

    • 値の一部としてタイムゾーンを使用すると、値をクライアントで現地時間としてレンダリングできます。

    • 値の一部としてタイムゾーンがない場合、明らかなデフォルトのタイムゾーンはUTCであるため、そのタイムゾーンに対してレンダリングされます。

    動作は、少なくとも3つの要因によって異なります。

    • クライアントのタイムゾーン設定。
    • データ型(つまり、WITH TIME ZONE またはWITHOUT TIME ZONE )の値。
    • 値が特定のタイムゾーンで指定されているかどうか。

    これらの要素の組み合わせをカバーする例を次に示します。

    foo=> SET TIMEZONE TO 'Japan';
    SET
    foo=> SELECT '2011-01-01 00:00:00'::TIMESTAMP;
          timestamp      
    ---------------------
     2011-01-01 00:00:00
    (1 row)
    
    foo=> SELECT '2011-01-01 00:00:00'::TIMESTAMP WITH TIME ZONE;
          timestamptz       
    ------------------------
     2011-01-01 00:00:00+09
    (1 row)
    
    foo=> SELECT '2011-01-01 00:00:00+03'::TIMESTAMP;
          timestamp      
    ---------------------
     2011-01-01 00:00:00
    (1 row)
    
    foo=> SELECT '2011-01-01 00:00:00+03'::TIMESTAMP WITH TIME ZONE;
          timestamptz       
    ------------------------
     2011-01-01 06:00:00+09
    (1 row)
    
    foo=> SET TIMEZONE TO 'Australia/Melbourne';
    SET
    foo=> SELECT '2011-01-01 00:00:00'::TIMESTAMP;
          timestamp      
    ---------------------
     2011-01-01 00:00:00
    (1 row)
    
    foo=> SELECT '2011-01-01 00:00:00'::TIMESTAMP WITH TIME ZONE;
          timestamptz       
    ------------------------
     2011-01-01 00:00:00+11
    (1 row)
    
    foo=> SELECT '2011-01-01 00:00:00+03'::TIMESTAMP;
          timestamp      
    ---------------------
     2011-01-01 00:00:00
    (1 row)
    
    foo=> SELECT '2011-01-01 00:00:00+03'::TIMESTAMP WITH TIME ZONE;
          timestamptz       
    ------------------------
     2011-01-01 08:00:00+11
    (1 row)
    


    1. Robolectricアクセスデータベースはエラーをスローします

    2. MySQLでの日付の解析

    3. PDOを使用した行数

    4. パターンに一致する値を含むオブジェクトのJSON配列を検索します