tech_memo / ORACLE / Timezone


tech_memo/ORACLE

TIMESTAMP型の種類

  • TIMESTAMP
    • タイムゾーン情報を持たない
  • TIMESTAMP WITH TIME ZONE
    • セッションの時刻と、そのタイムゾーン情報が格納されるtimezone情報を持つ
  • TIMESTAMP WITH LOCAL TIME ZONE
    • データベース・タイムゾーンに変換された日時情報が格納される

日付計算について

  • TIMESTAMP型とTIMESTAMP WITH TIME ZONE型の日付計算を行う場合は、TIMESTAMP WITH TIME ZONE型に合わせて計算が行われる。(精度の高い方に合わす)
  • なお、この時、TIMESTAMP型はtimezone情報を持っていないので、sessionのtimezone情報を使用する
    • session情報の取得方法
      SQL> select sessiontimezone from dual;
      
      SESSIONTIMEZONE
      ---------------------------------------------------------------------------
      +09:00
  • 以下、Oracleのドキュメント抜粋

それぞれの日時型を使用したテストと解析

Link