我用:
SELECT * FROM data WHERE date >= now() - INTERVAL 1 DAY
获取过去24小时内的所有记录。有没有办法从MySQL“过滤”以在24小时内仅获取每小时一个值?我不介意它是第一个记录还是每小时的最后记录。
date在Mysql时间戳中,用作主键(CURRENT_TIMESTAMP)。
为什么呢?我每分钟插入一个温度记录,然后我使用谷歌图表绘制它。当我绘制过去24小时的图表时,它看起来很疯狂!由于它的家庭DIY项目很好,在最后24小时绘制温度图表,间隔1小时。
答案 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