本文主要介绍 OceanBase 数据库对公元前时间表示的支持限制。
OceanBase 数据库 Oracle 模式下示例如下。
创建测试表。
obclient > CREATE TABLE ces01 (d DATE); Query OK, 0 rows affected (0.132 sec)插入测试数据。
执行如下测试语句。
obclient > INSERT INTO ces01 VALUES (TO_DATE('-2000-12-2','syyyy-mm-dd'));输出结果如下。
ORA-01841: (full) year must be between -4713 and +9999, and not be 0执行如下测试语句。
obclient > INSERT INTO ces01 VALUE (TO_DATE('-4000-12-2','syyyy-mm-dd'));输出结果如下。
ORA-01841: (full) year must be between -4713 and +9999, and not be 0执行如下测试语句。
obclient > INSERT INTO ces01 VALUES (TO_DATE('-0-12-2','syyyy-mm-dd'));输出结果如下。
ORA-01841: (full) year must be between -4713 and +9999, and not be 0
Oracle 数据库可以通过负数以及 'SYYYY' 表示公元前的时间。
示例。
SQL> SELECT TO_DATE('-2024-02-01 00:00:00','SYYYY-MM-DD HH24:MI:SS') AS DATE_TIME_FRT FROM DUAL;
输出结果如下。
DATE_TIME_F
-----------
-2024-02-01
Oracle 数据库可以通过负数以及 ‘SYYYY ’ 表示公元前的时间,在 OceanBase 数据库目前版本中,尚不支持类似的公元前的时间表示。
适用版本
OceanBase 数据库 V2.X、V3.X、V4.0 版本。