日付時刻リテラルには、文字列テキストと数値の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桁)に達します。小数部分は常に他の時間部分と小数点で区切られている必要があります。その他の小数秒の区切り文字は認識されません。