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天

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值