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