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

日付型リテラル

説明​

標準 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