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システム変数の値として使用できます。