兼容性判定
真机已验 · oceanbase:4.2.5:mysql 4.2.5.7 · mysql 模式支持度partial
严重度blocker
置信度high
依据规则my.func.timestamp_interval
怎么改
ADD 按单位构造 interval;DIFF 按完整单位和月末规则显式实现
判定说明
本批真机 语义对照 通过:覆盖范围以证据工件中的探针与断言为准;本结论来自人工代表性 fixture,未覆盖的自动变体及其处置见证据工件;本批证据结论不超过 partial
库侧 / 应用侧路径
库侧改造
可行:按实际 unit 分支重写并封装完整单位算法
应用侧改造
可行:日历单位差可在应用日期库统一实现
推荐路线:case_by_case。验证建议:月末、闰年、负差、不足一单位、微秒和时区边界回归
规则样例
SELECT TIMESTAMPADD(MONTH, 1, invoice_date) FROM invoice
SELECT TIMESTAMPDIFF(MONTH, started_at, finished_at) FROM job
SELECT DATEDIFF(finished_at, started_at) FROM job
参考来源
- https://github.com/oceanbase/oceanbase-doc/tree/2a5ae3a23a51729d065cec716508eb26cb064106
- https://github.com/darold/ora2pg/blob/97015451a4d1cfbee888f2e6efe7ff68c239a9b5/lib/Ora2Pg/PLSQL.pm#L3060-L3145
- https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html
- https://github.com/tobymao/sqlglot/blob/64e268a5d95cd84a87ad74ef569fc9bf356fd3fb/README.md#unsupported-errors
相关改造点
- MYSQL → OceanBase 4.2.5 MySQL 模式 全部改造点
- OceanBase 4.2.5 MySQL 模式 兼容性总览
- MYSQL 迁移国产库总览
- ORACLE CONNECT BY 层次查询 迁移 OceanBase 4.2.5 MySQL 模式 怎么改
- ORACLE LEVEL 层次伪列 迁移 OceanBase 4.2.5 MySQL 模式 怎么改
- ORACLE CONNECT_BY_ROOT 层次操作符 迁移 OceanBase 4.2.5 MySQL 模式 怎么改
- ORACLE DECODE 函数 迁移 OceanBase 4.2.5 MySQL 模式 怎么改
- ORACLE ORDER SIBLINGS BY 子句 迁移 OceanBase 4.2.5 MySQL 模式 怎么改
- ORACLE (+) 传统外连接标记 迁移 OceanBase 4.2.5 MySQL 模式 怎么改