に最終更新
日付型リテラル
説明
標準 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 リテラルには、マイクロ秒までの精度(小数部は最大六桁)で小数秒を含めることができます。小数秒部分は、必ずピリオド(.)で時刻の残りの部分と区切ってください。その他の小数秒の区切り文字は認識されません。
二桁の年
二桁の年を含む日付は、世紀が不明なため曖昧です。Doris は次の規則で二桁の年を解釈します。
- 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です。
無効な値の扱い
有効な日付リテラルとして解析できない値を指定すると、Doris は直接エラーを返します。例:
SELECT date '071332'
次のエラーが発生します。
date/datetime literal [071332] is invalid