使用mysql过滤时间序列数据

时间:2013-01-22 18:26:41

标签: mysql

我正在寻找从包含时间戳,值对的表中选择每个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分钟发生一次。

谢谢,

1 个答案:

答案 0 :(得分:0)

如何在几分钟内获取时间戳和零参考点之间的差异,并检查它是否在间隔时间?假设您的参考点是b

WHERE MOD(TIMESTAMPDIFF(MINUTE, timestamp, b), @interval) = 0

当然,您将无法使用索引,但至少可以避免返回所有数据。