我必须在每天早上接近8点的时候用第一个数据进行查询,但有时8点的数据不在那里,所以我需要下一个数据。
我用这个查询
SELECT datos.id_estacion, datos.fecha, hora, datos.valor
from datos
where id_estacion=1
and tipo_sensor=3
and day(fecha)=1
and hour(hora) in (8,9)
order by fecha, hora
limit 10
我得到了这些数据
fecha hors valor
2016-01-01 08:45:00 1147,97
2016-01-01 09:00:00 1147,96
2016-01-01 09:45:00 1147,96
2016-02-01 08:00:00 1150,95
2016-02-01 08:15:00 1150,95
2016-02-01 08:30:00 1150,95
2016-02-01 08:45:00 1150,96
2016-02-01 09:00:00 1150,96
2016-02-01 09:15:00 1150,96
2016-02-01 09:30:00 1150,96
但我需要最接近8的
01/01/2016 8:45:00 1147,97
01/02/2016 8:00:00 1150,95
谢谢!
1条答案
按热度按时间dgsult0t1#
我想你可以尝试使用
MIN()
,但你必须将该查询作为派生表,然后使用datos
表执行JOIN
以获得准确的valor
值。这假设在任何MySQL版本中都可以工作:或者你可以尝试使用
ROW_NUMBER()
..假设你使用的是具有该功能的MySQL版本(v8+):Demo fiddle