メインコンテンツまでスキップ
に最終更新

日付型リテラル

説明​

標準 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、TIMESTAMP_NS、TIMESTAMPTZ リテラル​

  • - で区切られた文字列の場合は、'YYYY-MM-DD hh:mm:ss' または 'YY-MM-DD hh:mm:ss' の形式を使用します。Doris は MySQL の非標準の区切り文字を使用する形式にも対応していますが、その使用は推奨しません。日付と時刻の区切り文字には、スペース( )または T を使用できます。MySQL 8.4 以前とは異なり、Doris は日付と時刻の間にこれ以外の区切り文字をサポートしません。
  • 区切り文字のない文字列の場合は、'YYYYMMDDhhmmss' または 'YYMMDDhhmmss' の形式を使用します(文字列が日付として有効な場合)。

日時リテラルには秒の小数部を含めることができます。DATETIME と TIMESTAMPTZ は最大六桁(マイクロ秒)、TIMESTAMP_NS は最大九桁(ナノ秒)を保持します。超過した桁は、対象の型の精度に合わせて丸められます。小数部は時刻の残りの部分とピリオド(.)で区切る必要があります。秒の小数部に他の区切り文字は認識されません。

二桁の年​

年が二桁で表された日付は、世紀が特定できないため曖昧です。Doris は次の規則で二桁の年を解釈します。

  • 70~99 は 1970~1999 年として解釈します。
  • 00~69 は 2000~2069 年として解釈します。

タイムゾーン​

DATE、DATETIME、TIMESTAMP_NS、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