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 型のデータは、表示時にセッションのタイムゾーンに調整されます。