DATE、DATETIME、TIMESTAMP型は互いに関連しています。このセクションでは、それぞれの特徴、類似点、相違点について説明します。
DATE
DATE型は、日付部分はあるが時刻部分はない値を表すために使用されます。
DATE値の検索および表示形式は'YYYY-MM-DD'で、範囲は'0000-00-00'から'9999-12-31'です。
OceanBaseデータベースでは、文字列または数値を使用してDATE列に値を代入できます。
構文は以下のとおりです:
DATE
DATETIME
DATETIME型は、日付と時刻の両方の部分を含む値を表すために使用されます。
DATETIME値の検索および表示形式は'YYYY-MM-DD hh:mm:ss'で、範囲は'0000-00-00 00:00:00'から'9999-12-31 23:59:59'です。
構文は以下のとおりです:
DATETIME[(fsp)]
オプションのfsp値は、小数秒の精度を指定するために使用され、範囲は[0,6]です。0値は小数部分がないことを示します。省略した場合、デフォルトの精度は0です。
DATETIME列は、DEFAULTおよびON UPDATE句を使用して、現在の日付と時刻による自動初期化と更新を指定できます。
DATETIME値には秒の小数部分を含めることができ、精度はマイクロ秒(6桁)まで達成可能です。形式は'YYYY-MM-DD hh:mm:ss[.fraction]'で、範囲は'0000-00-00 00:00:00.000000'から'9999-12-31 23:59:59.999999'です。小数部分は常に他の時間部分と小数点で区切られなければならず、他の区切り文字は認識されません。
TIMESTAMP
TIMESTAMPデータ型は、日付と時刻の両方の部分を含む値を表すために使用されます。
構文は以下のとおりです:
TIMESTAMP[(fsp)]
オプションのfsp値は、小数秒の精度を指定するために使用され、範囲は[0,6]です。0値は小数部分がないことを示します。省略した場合、デフォルトの精度は0です。
例:
CREATE TABLE t(C1 TIMESTAMP(6));
TIMESTAMP列では、DEFAULT CURRENT_TIMESTAMPおよびON UPDATE CURRENT_TIMESTAMP句を使用して、現在の日付と時刻による自動初期化と更新を指定できます。デフォルトでは、最初のTIMESTAMP列がこれらの属性を持ちますが、テーブル内の他のTIMESTAMP列にも定義できます。
TIMESTAMP値には秒の小数部を含めることができ、精度はマイクロ秒(6桁)まで達します。形式は'YYYY-MM-DD hh:mm:ss[.fraction]'で、範囲は'0000-00-00 00:00:00.000000'から'9999-12-31 23:59:59.999999'です。小数部は常に他の時間桁と小数点で区切られなければならず、他の区切り文字は認識されません。
OceanBaseデータベースは、TIMESTAMP値を現在のタイムゾーンからUTCに変換して保存し、検索時にはUTCから現在のタイムゾーンに戻して変換します。デフォルトでは、各接続の現在のタイムゾーンはサーバーの時刻に従いますが、各接続のタイムゾーンを変更することもできます。双方向の変換で同じタイムゾーンを使用しない場合、タイムゾーンを変更した後の検索結果は保存された値と異なる可能性があります。タイムゾーン設定が変わらない限り、保存された値を検索できます。現在のタイムゾーンはtime_zoneシステム変数の値として使用できます。