OceanBase 根据以下规则计算结果:
每个 值都包含一个时间成分,许多日期运算的结果都包含一个分数。此分数表示一天的一部分。例如,1.5 天是 36 个小时。OceanBase 内置函数还返回这些分数,以对
DATE
数据执行常见操作。例如,MONTHS_BETWEEN
函数返回两个日期之间的月数。结果的小数部分代表一个 31 天月份的那部分。OceanBase 将其他操作数转换为
DATE
数据。数值乘以间隔例外,这将返回一个间隔。如果另一个操作数具有时区值,则 OceanBase 在返回的值中使用当前会话时区。
当您将时间戳,时间间隔或数字值传递给仅限于
DATE
数据类型使用的内置函数时,OceanBase 将把非DATE
值转换为 值。当间隔计算返回日期时间值时,结果必须是实际的日期时间值,否则数据库将返回错误。例如,以下两个语句返回错误:
第一条语句失败,因为在一个有31天的月份上增加一个月,导致计算结果为 9 月 31 日,这不是有效的日期。第二条语句失败,因为在仅每四年存在的日期上增加一年是无效的。但是,在 2 月 29 日之前加上四年是有效的,计算结果为2008年2月29日:
- 下表是日期时间算术运算的矩阵。“—”表示不支持的操作。