INTERVAL DAY TO SECOND 可存储以天、小时、分钟和秒为单位的时间段。此数据类型对于表示两个日期时间值之间的精确差异很有用。

语法

  1. INTERVAL DAY [(precision)] TO SECOND [(fractional_seconds_precision)]

参数

参数说明
precision0~9代表了 DAY 元素的精度,默认值为 2。
fractional_seconds_precision0~9代表了 SECOND 元素小数部分的精度,默认值为 6。

示例

在插入 INTERVAL DAY TO SECOND 数据类型的值时,有以下几种格式,更多关于间隔数据类型值的指定请参阅 间隔字面量

语法示例说明
INTERVAL  ’dd hh:mm:ss’ DAY(precision) TO SECOND(fractional_seconds_precision)INTERVAL ‘140 5:12:10.2222222’ DAY(3) TO SECOND(7)间隔 140 天 5 小时 12 分钟 10.2222222 秒。
INTERVAL ‘dd hh’DAY(precision) TO HOURINTERVAL ‘400 5’ DAY(3) TO HOUR间隔 400 天 5 小时。
INTERVAL ‘dd hh:mm’DAY(precision) TO MINUTEINTERVAL ‘4 5:12’ DAY TO MINUTE间隔 4 天 5 小时 12 分钟。
INTERVAL ‘hh:mm’ HOUR TO MINUTEINTERVAL ‘11:20’ HOUR TO MINUTE间隔 11 小时 20 分钟。
INTERVAL ‘hh:mm:ss’ HOUR TO SECOND(fractional_seconds_precision)INTERVAL ‘11:12:10.2222222’ HOUR TO SECOND(7)间隔 11 小时 12 分钟 10.2222222 秒。
INTERVAL ‘dd’ DAY(precision)INTERVAL ‘14’ DAY间隔 14 天。
INTERVAL ‘hh’ HOURINTERVAL ‘160’ HOUR间隔 160 小时。
INTERVAL ‘mm’ MINUTEINTERVAL ‘14’ MINUTE间隔 14 分钟。
INTERVAL ‘ss’ SECOND(fractional_seconds_precision)INTERVAL ‘14.666’ SECOND(2, 3)间隔 14.666 秒。

如下代码所示,在表 Interval_Sample 中创建了数据类型为 INTERVAL DAY TO SECOND 的两列 interval1interval2 并向这两列中插入数值:

  1. CREATE TABLE Interval_Sample (interval1 INTERVAL DAY TO SECOND, interval2 INTERVAL DAY(3) TO SECOND(3));
  2. INSERT INTO Interval_Sample (interval1, interval2) VALUES ( INTERVAL '15 06:10:08' DAY TO SECOND, INTERVAL '150 06:10:08' DAY(3) TO SECOND(3));
  3. SELECT * FROM Interval_Sample;

返回结果:

  1. +---------------------+-------------------+
  2. | interval1 | interval2 |
  3. +---------------------+-------------------+
  4. | +15 06:10:08.000000 | +150 06:10:08.000 |
  5. +---------------------+-------------------+

间隔与其他日期类型的计算

OceanBase 支持数据类型间的转换,所以间隔数据类型的值可以与其他日期值进行数学运算。但是数据库并不支持数据类型间任意的进行加、减、乘、除运算。请参阅文档 日期时间 DATE 和间隔 INTERVAL 的计算 中查看目前支持的日期类型计算矩阵图和参阅文档 数据类型转换 了解数更多数据类型转换的信息。

关于间隔与其他数据类型计算的示例,请参阅文档 INTERVAL YEAR TO MONTH 数据类型

更多信息