问题描述
在用between and查询日期区间时 假设数据库储存的时间格式为 YYYY-MM-DD HH:MM:SS 而前端参数为 YYYY-MM-DD 执行以下SQL会出现次问题
select * from table where date_time between '2020-10-28' and '2020-10-28'
出现问题:
数据库明明有该日期,却没有查询到
原因:
短日期类型默认Time为00:00:00,所以当使用between作限制条件时,就相当于 between ‘2020-10-28 00:00:00’ and ‘2020-10-28 00:00:00’,因此就查不出数据。
解决方法
方法1 补全格式
select * from table where date_time between '2020-10-28 00:00:00' and '2020-10-28 23:59:59'
方法2 对数据进行截取
select * from table where left(date_time,10) between '2020-10-28' and '2020-10-28'