首批通过分布式安全可靠测评,为关键业务系统打造
MySQL 模式下时间类型间隔计算错误,错误代码 4016
更新时间:2024-01-22 01:56
介绍 MySQL 模式下时间类型间隔计算错误报 4016 错误的解决方法。
影响版本
OceanBase 数据库 V1.4.79 BP6 之前的版本
OceanBase 数据库 V2.2.30 BP1 ~ BP10
问题现象
在 MySQL 模式下执行以下 SQL 报错,错误信息如下。
mysql> CREATE TABLE tt(c1 timestamp);
mysql> INSERT INTO tt VALUES (2000-10:31 10:32:21.232);
mysql> SELECT c1, CASE WHEN 1 THEN c1 + interval 1 second WHEN 2 THEN c1 - interval 1 second ELSE null END FROM tt;
ERROR 4016 (HY000): Ooooooooooooops
可能原因
可能是由于 datetime、timestamp、time 类型在和 interval 类型进行计算时,没有考虑 scale 导致查询报错。
解决方式
对于 OceanBase 数据库 V1.4.79 版本,将 OceanBase 数据库升级到 V1.4.79 BP6 以后的版本。
对于 OceanBae 数据库 V2.2.30 版本,将 OceanBase 数据库升级到 V2.2.30 BP11 以后的版本。
有关 OceanBase 数据库的升级方法,参见《OceanBase 数据库 升级指南》。