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秒となります。時間部分のみを含むデータについては、日付部分のデフォルト値は当該月の1日となります。
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 型のデータは表示時にセッションのタイムゾーンに調整されます。