Mysql使用between and处理时间区间不包括右边界问题


比如在Mysql中有如下select语句:

SELECT * FROM userinfo WHERE xm='xiaoming' and datetime BETWEEN'2020-01-01' and '2020-01-31'

上面这种写法 查询出来的数据并不会包括 2020-1-31 日的数据,因为MySQL对日期的查询是默认“00:00:00”,所以上面的时间区间实际为:2020-01-01:00:00:00——2020-01-31:00:00:00,31日当天的数据是不在区间内的,所以查询不到。

解决方法:

1,把日期往后推一天,2018-10-01——2018-11-01
2,把右边界的时间精确到边界,2018-10-01——2018-10-31 23:59:59

补充:

以上问题只会在字段类型为‘DateTime’中会出现,MySQL本身是包含右边界的,如果是datetime,数据格式则会被转换为:2018-10-01 00:00:00,数据类型本身是date则不会出现上述问题。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM