适用于:
 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 的内部或外部为符号添加前缀。
如果有一个 - 符号,则间隔为负。 如果有两个或没有 - 符号,则间隔为正。
如果 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
-- Binding in a STRING parameter to an INTERVAL.
> EXECUTE IMMEDIATE 'SELECT CAST(:parm AS INTERVAL MINUTE TO SECOND)' USING '5:30' AS parm;
  5:30