全部产品

间隔表达式

更新时间:2020-03-27 12:53:12

间隔表达式(Interval Expression)生成 INTERVAL YEAR TO MONTHINTERVAL DAY TO SECOND 数据类型的值。

语法如下:

  1. ( expr1 - expr2 )
  2. { DAY [ (leading_field_precision) ] TO
  3. SECOND [ (fractional_second_precision) ]
  4. | YEAR [ (leading_field_precision) ] TO
  5. MONTH
  6. }

表达式 expr1expr2 可以是计算结果值为 DATETIMESTAMPTIMESTAMP WITH TIME ZONE 或者 TIMESTAMP WITH LOCAL TIME ZONE 数据类型的任意表达式。

leading_field_precisionfractional_second_precision 可以是 0 到 9 的任意整数,这两个参数指定了对应元素值的精确度。如果在指定 DAYYEAR 元素时省略了 leading_field_precision 参数,其使用默认值为 2,表示该元素的值不能超过 2 位整数。

如果对 SECOND 元素省略了 fractional_second_ precision 参数,其默认值为 6,表示该值精确到小数点第6位。如果查询的返回值比默认精度位数更多,OceanBase 会返回一个错误。

例如,下列语句用系统时间戳值减去表 ordersorder_date 列的值,生成一个间隔值表达式。由于最久远的订单何时生成是未知的,所以指定了 DAY 的精度:

  1. SELECT (SYSTIMESTAMP - order_date) DAY(9) TO SECOND FROM orders WHERE order_id = 2458;