mysql 日期查询 “between” 临界值 处理

前些天在做一个数据统计的项目,其中需要取得某特定日(天)的数据,语句大致如下:

select * from 表1 where from_unixtime(某时间戳) between '2017-01-01' and '2017-01-01'

查询结果为空,但实际登录mysql服务器查看记录发现,2017年1月1日是有数据的~

后来知道这是因为 mysql 会将 "between '2017-01-01' and '2017-01-01'"理解成从 2017年1月1日0点0分 至 2017年1月1日0点0分

而我真正需要的区间是 2017年1月1日0点0分 至 2017年1月1日24点0分。

解决方法,将后面的时间延后24小时即可:

例如, 将 between '2017-01-01' and '2017-01-01' 改为 between '2017-01-01' and date_add('2017-01-01',interval 1 day)

原文地址:https://www.cnblogs.com/yxmfighting/p/7018330.html