日付型リテラル
説明
標準SQLと一貫して、Dorisでは日付リテラルを指定するために型キーワードと文字列の使用が必要です。キーワードと文字列の間のスペースはオプションです。例えば:
DATE '2008-08-08'
TIMESTAMP '2008-08-08 20:08:08'
日付形式
DATE リテラル
'YYYY-MM-DD'または'YY-MM-DD'の形式で-で区切られた文字列を使用します。Doris は MySQL の非標準区切り文字形式もサポートしていますが、使用は推奨されません。- 区切り文字なしの文字列として、
'YYYYMMDD'または'YYMMDD'の形式を使用します(文字列が日付として意味がある場合)。
DATETIME および TIMESTAMPTZ リテラル
'YYYY-MM-DD hh:mm:ss'または'YY-MM-DD hh:mm:ss'の形式で-で区切られた文字列を使用します。Doris は MySQL の非標準区切り文字形式もサポートしていますが、使用は推奨されません。日付と時刻の間の区切り文字は空白()またはTを使用できます。MySQL 8.4 以前のバージョンとは異なり、Doris は時刻と日付の間に他の区切り文字をサポートしません。- 区切り文字なしの文字列として、
'YYYYMMDDhhmmss'または'YYMMDDhhmmss'の形式を使用します(文字列が日付として意味がある場合)。
DATETIME リテラルには、マイクロ秒(6桁)までの精度で秒の小数部分を含めることができます。小数部分は常にドット(.)で時刻の残りの部分から区切られる必要があります。他の秒の小数部分の区切り文字は認識されません。
2桁の年
2桁の年の値を含む日付は、世紀が不明なため曖昧です。Doris は2桁の年の値を解釈するために以下のルールを使用します:
- 70-99 の年の値は 1970-1999 年として解釈されます。
- 00-69 の年の値は 2000-2069 年として解釈されます。
タイムゾーン
DATE、DATETIME および TIMESTAMPTZ リテラルはタイムゾーン接尾辞を使用できます。タイムゾーンを使用する場合、タイムゾーンは直前の日付または時刻部分に隣接する必要があり、間に空白を入れてはいけません。例:
TIMESTAMP '2008-08-08 20:08:08+08:00'
Dorisがサポートするタイムゾーン形式は以下の通りです:
- タイムゾーンオフセット:形式は
{+ | -}hh:mmです。例えば、UTC+8の場合は+08:00です。 - タイムゾーン名。例えば、上海のタイムゾーンは
Asia/Shanghaiです。
無効な値の処理
有効な日付Literalsに解析できない値に遭遇した場合、Dorisは直接エラーを報告します。例えば:
SELECT date '071332'
以下のエラーが発生します:
date/datetime literal [071332] is invalid