问题描述
有一个传感器 5秒录入一次数据 sensor表有个createTime字段
数据太多向按时间抽取 用户可以自定义事件间隔,#{time}可以传入
问题出现的环境背景及自己尝试过哪些方法
因为我们一般就取历史数据30天,我尝试用取余的方法
select ID, ALARMID, SENSORID, ALARMNAME, ROOMNAME, SENSORMODEL, SENSORNUM, REMARK,
CREATETIME,VALUE,MINUTE(CREATETIME) a
from fire_alarm_history
where SENSORID = #{sensorId,jdbcType=VARCHAR}
and MINUTE(CREATETIME)% #{time,jdbcType=INTEGER} =0
group by a
order by CREATETIME desc
但是 只能是60的公约数 才可以例如11分钟就 不行了 只能去0 11 22 33 44 55 分钟的
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
思路还可以,UNIX_TIMESTAMP(date) 用秒取余呗,不过可能判断就得是范围而不是一个整数了。