原代码
select * from aaa where date >= '2023-09-08' and date <='2023-09-09';
这样查询时数据库只会返回 08 的数据 没有09的数据,但是数据库中是有09的数据的
原因可能是因为 数据库是 datetime 类型 在接收到 2023-09-09 这样的时间格式时自动补全成了
2023-09-09 00:00:00 所以是查不到09 的数据的
解决方法1:
select * from aaa where DATE_FORMAT(date,'%Y-%m-%d')>= '2023-09-08' and DATE_FORMAT(date,'%Y-%m-%d') <='2023-09-09';
使用DATE_FORMAT()函数 转换数据类型 去掉时分秒
解决方法2:
SELECT * FROM aaa WHERE DATE(date) IN ('2023-09-08', '2023-09-09');
使用 DATE()IN ('','')的写法