0

我正在从包含时间戳、值对的表中选择每个 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 分钟出现一次。

谢谢,

4

1 回答 1

0

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

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

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

于 2013-01-22T18:32:38.780 回答