Mybatis中sql使用DATE_SUB后对日期进行计算后返回值错误

代码片段:

一般情况来讲使用date_format关键字后,对时间进行INTERVAL - 1 DAY操作时,获取到的日期应该为前一天,结果当查询出来后日期反而增加一天,变为后一天的日期

原因:

date_format(DATE_SUB(NOW(), INTERVAL -1 DAY), '%Y-%m-%d') 这样写是因为 DATE_SUB 函数的第二个参数应该是一个负数,以便从NOW()中减去负的天数,从而得到加一天的效果。

这样的操作实际上是获得 NOW() 的前一天日期

解决方案:

  • INTERVAL -1 DAY 表示减去一个负的天数,即加上一天。
  • DATE_SUB(NOW(), INTERVAL 1 DAY) 返回 NOW()减去一天后的日期和时间。(负负得正喔)
  • 最后,date_format(..., '%Y-%m-%d') 将结果格式化为年-月-日的形式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值