MySQL过去24小时的1h记录

时间:2015-12-16 09:37:36

标签: mysql timestamp

我用:

SELECT * FROM data WHERE date >= now() - INTERVAL 1 DAY

获取过去24小时内的所有记录。有没有办法从MySQL“过滤”以在24小时内仅获取每小时一个值?我不介意它是第一个记录还是每小时的最后记录。

date在Mysql时间戳中,用作主键(CURRENT_TIMESTAMP)。

为什么呢?我每分钟插入一个温度记录,然后我使用谷歌图表绘制它。当我绘制过去24小时的图表时,它看起来很疯狂!由于它的家庭DIY项目很好,在最后24小时绘制温度图表,间隔1小时。

2 个答案:

答案 0 :(得分:1)

试试这个:

SELECT * FROM data WHERE date >= now() - INTERVAL 1 DAY group by hour(date)

答案 1 :(得分:0)

您可以按小时对数据进行分组,并选择每小时最低id。如果您将该子查询加入到您的表中 - 您将获得所需的结果

select d1.*
from data d1
join
(
  SELECT min(id) as id
  FROM data 
  group by date(date), hour(date)
) d2 on d1.id = d2.id
WHERE d1.date >= now() - INTERVAL 1 DAY