我正在建立一个图表,我想接收每个月的数据。
这是我的第一个有效的要求:
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:
DATE_ADD/DATE_SUB
AND v.date > (DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) AND v.date < (DATE_SUB(CURDATE(), INTERVAL 1 MONTH))
应该管用。