我正在寻找从包含时间戳,值对的表中选择每个X点。例如:
CREATE TABLE data (
value double NOT NULL,
timestamp datetime NOT NULL,
PRIMARY KEY (timestamp),
) ENGINE=InnoDB DEFAULT CHARSET=latin1
如果我跑:
SELECT * FROM data where timestamp < a and timestamp > b order by timestamp desc
我可以接收所有值并在代码中过滤它们,但是有更好的方法来执行此操作(希望直接在sql中)。我们可以安全地假设数据点每X分钟发生一次。
谢谢,
答案 0 :(得分:0)
如何在几分钟内获取时间戳和零参考点之间的差异,并检查它是否在间隔时间?假设您的参考点是b
:
WHERE MOD(TIMESTAMPDIFF(MINUTE, timestamp, b), @interval) = 0
当然,您将无法使用索引,但至少可以避免返回所有数据。