在MySQL中使用INTERVAL和CURDATE

我正在建立一个图表,我想接收每个月的数据。

这是我的第一个有效的要求:

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))

应该管用。

以上是 在MySQL中使用INTERVAL和CURDATE 的全部内容, 来源链接: utcz.com/qa/411580.html

回到顶部