解决 MySQL 使用 BETWEEN AND 处理时间区间不包括右边界问题
原文地址:解决 MySQL 使用 BETWEEN AND 处理时间区间不包括右边界问题
问题描述
在 Mysql 中使用 between and 根据时间来查询时不包含右边界数据,例如
SELECT * FROM log_info WHERE add_time BETWEEN '2020-08-04' and '2020-08-09'
查询出来的数据并不会包含 2020-08-09 的数据,因为 Mysql 对日期的查询是默认 00:00:00,所以上面的时间实际是:2020-08-04 00:00:00 至 2020-08-09 00:00:00,2020-08-09 当天的数据不在区间内,所以查询不到。
解决方法
- 将右边界日期往后推一天,如
2020-08-04-2020-08-10; - 将右边界时间精确到秒,如
2020-08-04-2020-08-09 23:59:59;
以上问题只会在字段类型为 datetime 中出现,Mysql 本身是包含边界的,但如果字段类型为 datetime 时,数据将会被转换为 2020-08-04 00:00:00,而数据类型为 date 则不会出现上述问题。
本文来自博客园,作者:lanweihong,转载请注明原文链接:https://www.cnblogs.com/lanweihong/p/14280271.html

浙公网安备 33010602011771号