INTERVAL
型
適用対象: Databricks SQL Databricks Runtime
秒または月のスケールで時間の間隔を表します。
構文
INTERVAL { yearMonthIntervalQualifier | dayTimeIntervalQualifier }
yearMonthIntervalQualifier
{ YEAR [TO MONTH] |
MONTH }
dayTimeIntervalQualifier
{ DAY [TO { HOUR | MINUTE | SECOND } ] |
HOUR [TO { MINUTE | SECOND } ] |
MINUTE [TO SECOND] |
SECOND }
メモ
年または月を扱う間隔は、年月の間隔と呼ばれます。
日、時間、分、または秒を扱う間隔は、日時の間隔と呼ばれます。
年月と日時の間隔を組み合わせたり比較したりすることはできません。
日時の間隔は、厳密には 86400 秒/日および 60 秒/分に基づいています。
秒は常にマイクロ秒を含んでいると見なされます。
制限
年月の間隔の最大範囲は +/- 178,956,970
年と 11
か月です。
日時の間隔の最大範囲は +/- 106,751,991
日、23
時間、59
分、59.999999
秒です。
リテラル
year-month interval
INTERVAL [+|-] yearMonthIntervalString yearMonthIntervalQualifier
day-time interval
INTERVAL [+|-] dayTimeIntervalString dayTimeIntervalQualifier
yearMonthIntervalString
{ '[+|-] y[...]' |
'[+|-] y[...]-[m]m' }
dayTimeIntervalString
{ '[+|-] d[...]' |
'[+|-] d[...] [h]h' |
'[+|-] d[...] [h]h:[m]m' |
'[+|-] d[...] [h]h:[m]m:[s]s' |
'[+|-] d[...] [h]h:[m]m:[s]s.ms[ms][ms][us][us][us]' |
'[+|-] h[...]' |
'[+|-] h[...]:[m]m' |
'[+|-] h[...]:[m]m:[s]s' |
'[+|-] h[...]:[m]m:[s]s.ms[ms][ms][us][us][us]' |
'[+|-] m[...]' |
'[+|-] m[...]:[s]s' |
'[+|-] m[...]:[s]s.ms[ms][ms][us][us][us]' |
'[+|-] s[...]' |
'[+|-] s[...].ms[ms][ms][us][us][us]' }
y
: 経過した年数。m
: 経過した月数。d
: 経過した日数。h
: 経過した時間数。m
: 経過した分数。s
: 経過した秒数。ms
: 経過したミリ秒数。us
: 経過したマイクロ秒数。
単位は intervalQualifier
の先行する単位を構成する場合を除き、定義された範囲内に収まる必要があります。
- 月数: 0 から 11
- 時間数: 0 から 23
- 分数: 0 から 59
- 秒数: 0.000000 から 59.999999
intervalString
の内側または外側のいずれかに符号を付けることができます。
-
符号が 1 つの場合、間隔は負の値になります。 -
符号が 2 つあるか存在しない場合、間隔は正の値になります。
intervalString
内のコンポーネントが intervalQualifier
のコンポーネントと一致しない場合、エラーが発生します。
intervalString
値が intervalQualifier
によって指定された範囲内に収まっていない場合、エラーが発生します。
例
> SELECT INTERVAL '100-00' YEAR TO MONTH;
100-0
> SELECT INTERVAL '-3600' MONTH;
-300-0
> SELECT INTERVAL -'200:13:50.3' HOUR TO SECOND;
-200:13:50.3
> SELECT typeof(INTERVAL -'200:13:50.3' HOUR TO SECOND);
interval hour to second
> SELECT CAST('11 23:4:0' AS INTERVAL DAY TO SECOND);
11 23:04:00