mysql时间筛选

27次阅读

共计 489 个字符,预计需要花费 2 分钟才能阅读完成。

项目过程中遇到一个问题,做一个记录。
需求是需要按照时间筛选询价单,起初没有多想,就按照常规的思路去写。

<if test="betweenBeginDay != null and betweenEndDay != null">
                and e.created_at BETWEEN #{betweenBeginDay} AND #{betweenEndDay}

但是这样会有一个问题,就是如果你传入的时间是 2019-09-05,mysql 会将时间匹配成 2019-09-05-00:00:00。这样的话,我想查 2019-09-04 到 2019-09-05 这个时间段内的时间就会发现,9 月 5 日这天是数据是查不到的。再比如 2019-09-05 到 2019-09-05 的数据是没有的。

因此在写查询语句的时候,需要把技术日期加一。

<if test="betweenBeginDay != null and betweenEndDay != null">
                and e.created_at BETWEEN #{betweenBeginDay} AND date_add(#{betweenEndDay}, INTERVAL 1 day)

这样就可以正确查出结果。

正文完
 0