时间间隔使用TIMESTAMPDIFF取差值 用储存变量 根据生一个值 得到下个值的间隔
#@time 变量用来存储今天的时间
#@interval interval 时间间隔
#(NOW() - interval 24 hour) 连续的24小时 可根据自己的时间范围调整
SET @time := '1000-01-01 00:00:00';
SET @interval := 10;
SELECT * FROM dev_photovoltaic
WHERE `dev_photovoltaic`.`ts` >= (NOW() - interval 24 hour)
AND TIMESTAMPDIFF( MINUTE, @time, `dev_photovoltaic`.`ts` ) >= @interval
AND @time := `dev_photovoltaic`.`ts`;
一下方式会有bug 时间不间隔不准
1 按照 时间分组查询
SELECT
d.ts as eq_time,dev,
-- 按num分钟
CONCAT(
DATE_FORMAT(d.ts, '%Y%m%d%H'),
LPAD(FLOOR(DATE_FORMAT(d.ts, '%i') / 5) * 3,2,'0')
) time
FROM
dev_photovoltaic d WHERE `d`.`ts` >=(NOW() - interval 24 hour)
GROUP BY
time ORDER BY d.ts ASC
2 第二种就是当做where 条件 根据时间取模