跳过至主要内容

Interval

表示时间和日期间隔的一组数据类型。 INTERVAL 运算符的最终结果类型。

结构

  • 作为无符号整数值的时间间隔。
  • 间隔类型。

支持的间隔类型

  • NANOSECOND
  • MICROSECOND
  • MILLISECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

每个间隔类型都有一个单独的数据类型。 例如,DAY 间隔对应于 IntervalDay 数据类型

SELECT toTypeName(INTERVAL 4 DAY)
┌─toTypeName(toIntervalDay(4))─┐
│ IntervalDay │
└──────────────────────────────┘

使用说明

您可以将 Interval 类型的值用于与 DateDateTime 类型的值进行算术运算。 例如,您可以将当前时间加上 4 天

SELECT now() as current_date_time, current_date_time + INTERVAL 4 DAY
┌───current_date_time─┬─plus(now(), toIntervalDay(4))─┐
│ 2019-10-23 10:58:45 │ 2019-10-27 10:58:45 │
└─────────────────────┴───────────────────────────────┘

还可以同时使用多个间隔

SELECT now() AS current_date_time, current_date_time + (INTERVAL 4 DAY + INTERVAL 3 HOUR)
┌───current_date_time─┬─plus(current_date_time, plus(toIntervalDay(4), toIntervalHour(3)))─┐
│ 2024-08-08 18:31:39 │ 2024-08-12 21:31:39 │
└─────────────────────┴────────────────────────────────────────────────────────────────────┘

以及比较具有不同间隔的值

SELECT toIntervalMicrosecond(3600000000) = toIntervalHour(1);
┌─less(toIntervalMicrosecond(179999999), toIntervalMinute(3))─┐
│ 1 │
└─────────────────────────────────────────────────────────────┘

另请参阅