OceanBaseデータベースは、日付時刻データ型をサポートしており、DATEデータ型とTIMESTAMPデータ型が含まれます。
DATEデータ型
DATE データ型は日付と時刻を格納します。日付時刻は文字列または数値型で表現できますが、DATE 型を使用する場合には独自の特性があります。
OceanBaseデータベースでは、DATE および TIMESTAMP 型のデータを64ビットのINTで内部保存し、その時点から1970年1月1日00時00分00秒までのマイクロ秒数を記録します。
注意
DATE および TIMESTAMP 型は算術演算を完全にサポートしており、ユーザーは NUMBER 型と同様に加算や減算を行うことができます。
データベースは特定の形式で日付時刻型のデータを表示します。DATE 型の標準形式は DD-MON-RR です。例えば、2011年1月1日は 01-JAN-11 として表示されます。ユーザーはクラスタレベルおよびセッションレベルのデフォルト形式を変更できます。
OceanBaseデータベースでは、時間は24時間形式の HH24:MI:SS で表示されるようにデフォルト設定されています。ユーザーが時間部分の値を指定しない場合、デフォルト値は0時0分0秒です。時間部分のみを含むデータについては、日付部分のデフォルト値はその月の最初の日付です。
TIMESTAMPデータ型
TIMESTAMP データ型は DATE 型の拡張であり、時間の小数部分も追加で保存されるため、正確な時間値を格納するのに適しています。例えば、すべてのイベントの順序を記録する必要があるアプリケーションで使用されます。TIMESTAMP 型はタイムゾーン情報を認識しません。
TIMESTAMP WITH TIME ZONE と TIMESTAMP WITH LOCAL TIME ZONE の2つの型はタイムゾーンを認識します。このデータ型は、地理的に異なる地域間の日付情報を記録および分析するために使用できます。TIMESTAMP WITH TIME ZONE 型の値にはタイムゾーン情報が保存され、データベース内部での読み書きおよび処理はすべてタイムゾーン情報を伴います。同一列のデータには、異なるタイムゾーンの値を含めることができます。TIMESTAMP WITH LOCAL TIME ZONE 型の値にはタイムゾーン情報が保存されません。Oracleデータベースでは、TIMESTAMP WITH LOCAL TIME ZONE 型の値は DBTIMEZONE に対応する時間に変換して保存されますが、OceanBaseデータベースのOracleテナントでは、DBTIMEZONE は '+00:00' に固定されており変更できないため、この型の値は直接UTC時間に変換して保存されます。TIMESTAMP WITH LOCAL TIME ZONE 型のデータは表示時にセッションのタイムゾーンに調整されます。