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