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 に答える