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)

posted @ 2017-06-15 16:06  glorythesky  阅读(1722)  评论(0编辑  收藏  举报