日付時刻リテラルには、文字列テキストと数値の2種類の形式があります。
文字列テキストと数値の違いは以下のとおりです:
文字列テキスト形式では、フル区切り文字を使用できます。例:
'2015-07-21 12:34:56.789'。または、区切り文字を使用しないこともできます。例:'20150721'。数値形式では、秒とマイクロ秒の区切り文字として小数点
.のみが許可されます。例:20150721123456.789。
区切り文字を使用する場合、秒とマイクロ秒の間には小数点 . のみを使用できます。その他の場合は、-、/、: などの一般的な区切り文字のみを使用することを推奨します。
DATE値
OceanBaseデータベースは、以下の形式の DATE 値を認識します:
'YYYY-MM-DD'または'YY-MM-DD'形式。日付部分の間に任意の句読点を区切り文字として使用できます。例えば、'2012-12-31'、'2012/12/31'、'2012^12^31'、'2012@12@31' は互換性があります。'YYYYMMDD'または'YYMMDD'形式。ただし、その文字列が意味のある日付値である必要があります。例えば、'20070523' と '070523' は '2007-05-23' と解釈されますが、'071532' は無効です(意味のない月と日を含むため)およびNULLを返します。YYYYMMDDまたはYYMMDD形式。ただし、その数字が意味のある日付値である必要があります。例えば、19830905 と 830905 は "1983-09-05" と解釈されます。注意
STRICT_TRANS_TABLESおよびNO_ZERO_IN_DATESQLモードでは、日付の月や日に0が含まれる場合はエラーが発生しますが、'0000-00-00' は例外です。
DATETIMEとTIMESTAMP値
OceanBaseデータベースは、以下の形式の DATETIME および TIMESTAMP 値を認識します:
'YYYY-MM-DD hh:mm:ss'または'YY-MM-DD hh:mm:ss'形式。日付部分と時間部分の間に任意の句読点を区切り文字として使用できます。例えば、'2012-12-31 11:30:45'、'2012^12^31 11+30+45'、'2012/12/31 11*30*45" および '2012@12@31 11^30^45' は互換性があります。日付と時間の部分と小数秒の部分の間で認識できる唯一の区切り文字は小数点です。日付と時間の部分は、スペースの代わりに
Tで区切ることができます。例えば、'2012-12-31 11:30:45' と '2012-12-31T11:30:45' は互換性があります。'YYYYMMDDhhmmss'または'YYMMDDhhmmss'形式。ただし、その文字列が意味のある日付値である必要があります。例えば、'20070523091528' と '070523091528' は '2007-05-23 09:15:28' と解釈されますが、'071122129015' は無効です(分の部分が無意味であるため)およびNULLを返します。YYYYMMDDhhmmssまたはYYMMDDhhmmss形式。ただし、その文字列が意味のある日付値である必要があります。例えば、19830905132800 と 830905132800 は '1983-09-05 13:28:00' と解釈されます。
DATETIME または TIMESTAMP 値には、小数秒の部分を含めることができ、精度はマイクロ秒(6桁)まで達します。小数部分は常に小数点で時間の残りの部分と区切られている必要があります。その他の小数秒の区切り文字は認識されません。
OceanBaseデータベースは、2桁の年を含む日付を解釈する際に以下のルールを適用します:
70から99の範囲の年は、1970から1999に変換されます。
00から69の範囲の年は、2000から2069に変換されます。
月または日が10未満の場合、2桁を指定する必要はありません。例えば、'2015-6-9' と '2015-06-09' は同じです。同様に、時、分、秒が10未満の場合も、2桁を指定する必要はありません。例えば、'2015-10-30 1:2:3' と '2015-10-30 01:02:03' は同じです。
また、OceanBaseデータベースは、数値の長さに応じて指定する形式を選択します:
6桁の数値の一般的な形式は
YYMMDDです。8桁の数値の一般的な形式は
YYYYMMDDです。12桁の数値の一般的な形式は
YYMMDDHHMMSSです。14桁の数値の一般的な形式は
YYYYMMDDHHMMSSです。
TIME値
OceanBaseデータベースは、以下の形式の TIME 値を認識します:
'D hh:mm:ss'形式、または'hh:mm:ss'、'hh:mm'、'D hh:mm'、'D hh'、および'ss'。ここでDは日数を表し、有効な値は0から34の整数です。'hhmmss'形式、区切り文字なし。ただし、その数値が意味のある時間値である必要があります。例えば、'101112' は '10:11:12' として解釈されますが、'109712' は無効です(意味のない分の部分を含むため)および '00:00:00' に変換されます。hhmmss形式、またはss、mmss、hhmmss。ただし、その数値が意味のある時間値である必要があります。例えば、101112 は '10:11:12' として解釈されます。
'D hh:mm:ss.fraction'、'hh:mm:ss.fraction'、'hhmmss.fraction'、および hhmmss.fraction の時間形式では、末尾の小数秒部分が認識され、小数部の精度はマイクロ秒(6桁)まで達します。小数部は常に他の時間部分と小数点で区切られている必要があります。その他の小数秒の区切り文字は認識されません。