メインコンテンツまでスキップ
バージョン: 4.x

日付型リテラル

説明

標準SQLと同様に、Dorisでは日付リテラルを指定するためにtype キーワードと文字列の使用が必要です。キーワードと文字列の間のスペースはオプションです。例:

DATE '2008-08-08'
TIMESTAMP '2008-08-08 20:08:08'

日付フォーマット

DATE リテラル

  • 'YYYY-MM-DD' または 'YY-MM-DD' の形式で - で区切られた文字列を使用します。Doris は MySQL の非標準セパレーター形式もサポートしていますが、その使用は推奨されません。
  • セパレーターなしの文字列として、'YYYYMMDD' または 'YYMMDD' の形式を使用します(文字列が日付として意味がある場合)。

DATETIME リテラル

  • '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 リテラルは、タイムゾーン接尾辞を使用できます。タイムゾーンを使用する場合、タイムゾーンは前の日付または時刻部分に直接隣接し、間にスペースを入れてはいけません。例えば:

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