兼容性判定
工件锚点记录 · oceanbase:4.2.5:mysql 4.2.5.7 · mysql 模式支持度partial
严重度critical
置信度high
依据规则my.func.datediff
迁移建议
(end_expr)::date - (start_expr)::date
判定说明
本批真机 语义对照 通过:覆盖范围以证据工件中的探针与断言为准;本结论来自人工代表性 fixture,未覆盖的自动变体及其处置见证据工件;本批证据结论不超过 partial
库侧 / 应用侧路径
库侧改造
可行:两端显式 cast date 后相减
应用侧改造
可行:日期口径可在应用 LocalDate 计算
推荐路线:db_side。验证建议:同日、跨午夜、负差、时区转换前后和 NULL 回归
规则样例
SELECT DATEDIFF('2026-07-11 00:01:00','2026-07-10 23:59:00')
SELECT DATEDIFF(closed_at, opened_at) FROM ticket
参考来源
- 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
相关改造点
- DATEDIFF 整日边界差 的 21 目标横向专业场景
- 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 模式 适配说明