在做mysql区间查询的时候,查询出的数据缺少最大时间的数据

例如:表中有一个字段datetime类型的字段date,sql语句如下:

select * from test where date between '2018-01-17' and '2018-01-18';
select * from test where date >= '2018-01-17' and date <= '2018-01-18';
两个语句都得不到 date 等于 2018-01-18的数据。最后的解决办法是将2018-01-18 后面加上了时、分、秒,及改成如下语句:

select * from test where date between '2018-01-17' and '2018-01-18 23:59:59';
select * from test where date >= '2018-01-17' and '2018-01-18 23:59:59';
感觉时间的比较是按字符串方式比较的,因为,date字段的数据是精确到时分秒的,及 '2018-01-18' > '2018-01-18 00:00:00',所以最上面两个sql语句查不到值为2018-01-18的数据。

Logo

更多推荐