Mysql SQL时间区间判断 预警 未预警 已过期
1.未预警:比如送外卖:外卖收到的不算,没开始送的不算
配货完成的 或者 当前时间小于,期望到达时间减去预警时间
当天时间 < 预期时间 -预警时间
当前是时间是 new Date ;
期望到达时间在数据库取出
预警时间前端传进来
比如当前时间是 2021 8 14 ,期望到达时间是2021 8 20,预警时间是5天, 在预警时间之前的不算预警,也就是 2021 8 20 -5 ,2021 8 15,之前的都不算
我这里的业务预警时间是小时 ,时间使用当前时间去和数据中的比较
当前时间比,数据库中预期到达时间减去预警时间,小就是未预警
时间计算使用Mysql的方法给一个负数返回这个时间之前的时间,返回数据库中预期到达时间-预警时间
<if test="null != param2.warningStatus and param2.warningStatus == 1">
and (mit_work_order_batch.warehousing_status = 配货完成的
or #{当前时间}<DATE_ADD(预期到达时间,INTERVAL #{预警时间} hour))
</if>
2.预警: 外卖:没有收到,并且还是定时宝时间范围内
区间判断
(预期到达时间减去预警时间) < 当天时间 < 预期到达时间
<if test="null != param2.warningStatus and param2.warningStatus == 2">
and mit_work_order_batch.warehousing_status = 未配货
and DATE_ADD(预期到达时间,INTERVAL #{预警时间} hour)<#{当天时间}
and #{当天时间}<预期到达时间
</if>
3.已过期:外卖:没有收到,并且超时了
预期到达时间<#{当天时间}
<if test="null != param2.warningStatus and param2.warningStatus == 3">
and mit_work_order_batch.warehousing_status = 未配货
and 预期到达时间<#{当天时间}
</if>