Oracle日期计算跟Mysql计算日期差距问题-导致两边计算不一致
Oracle数据库对日期做加法时,得到的时间是某天的12:00:00
例:
Oracle计算
select (TO_DATE('2025-04-14', 'YYYY-MM-DD')+1.5*365) from dual;
结果:2026/10/13 12:00:00
Mysql计算
select DATE_ADD( str_to_date( '2025-04-14', '%Y-%m-%d' ), INTERVAL FLOOR( CAST( 1.5 AS DECIMAL ( 10, 1 )) * 365 ) DAY );
结果:2026-10-13
这两个值去做日期减法的时候,就会出现计算结果不同的情况:
Oracle:
select ceil(((TO_DATE('2026/10/13 12:00:00', 'YYYY-MM-DD HH24:MI:SS'))-sysdate)) from dual;
结果:518
Mysql:
select DATEDIFF(str_to_date( '2026-10-13', '%Y-%m-%d' ),CURDATE());
结果:517
这就是计算结果不同的原因,但是从尝试来看,mysql的计算结果显然跟符合。例如今天距离明天结果应该是1天,但是orcale就会得到2天