チャートを作成していますが、毎月のデータを受け取りたいです。
これが機能している最初のリクエストです:
SELECT s.GSP_nom AS nom, timestamp, AVG( v.vote + v.prix ) /2 AS avg
FROM votes_serveur AS v
INNER JOIN serveur AS s ON v.idServ = s.idServ
WHERE s.valide =1
AND v.date > CURDATE() -30
GROUP BY s.GSP_nom
ORDER BY avg DESC
しかし、私の場合、前の12か月のデータを受信するために12のリクエストを作成する必要があります。
// example for the previous month
AND v.date > CURDATE() -60
AND v.date < CURDATE () -30
INTERVALについて聞いたので、MySQLのドキュメントに行きましたが、実装することができませんでした。
INTERVALの使用例はありますか?
必要です DATE_ADD/DATE_SUB
:
AND v.date > (DATE_SUB(CURDATE(), INTERVAL 2 MONTH))
AND v.date < (DATE_SUB(CURDATE(), INTERVAL 1 MONTH))
動作するはずです。
A Starが示唆するように、私はいつも次のようなものを使用します。
DATE(NOW()) - INTERVAL 1 MONTH
同様に次のことができます:
NOW() + INTERVAL 5 MINUTE
"2013-01-01 00:00:00" + INTERVAL 10 DAY
等々。常にDATE_ADD
またはDATE_SUB
と入力するよりもずっと簡単です:)!
私は通常使用します
DATE_ADD(CURDATE(), INTERVAL - 1 MONTH)
これはペッカのものとほぼ同じですが、この方法で区間を負または正に制御できます...