在 MySQL 中使用 INTERVAL 和 CURDATE

发布于 2024-08-31 23:15:46 字数 558 浏览 6 评论 0原文

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

这是我的第一个正在运行的请求:

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 的例子吗?

I'm building a chart and I want to receive data for each month.

Here's my first request which is working:

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

But, in my case I've to write 12 request to receive data for the 12 previous months, is there any trick to avoid writing:

//  example for the previous month
 AND v.date > CURDATE() -60
AND v.date < CURDATE () -30

I heard about INTERVAL, I went to the MySQL doc but i didn't manage to implement it.

Any example of using INTERVAL please?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

度的依靠╰つ 2024-09-07 23:15:46

您需要 DATE_ADD/ DATE_SUB

AND v.date > (DATE_SUB(CURDATE(), INTERVAL 2 MONTH))
AND v.date < (DATE_SUB(CURDATE(), INTERVAL 1 MONTH))

应该可以。

You need DATE_ADD/DATE_SUB:

AND v.date > (DATE_SUB(CURDATE(), INTERVAL 2 MONTH))
AND v.date < (DATE_SUB(CURDATE(), INTERVAL 1 MONTH))

should work.

薄荷梦 2024-09-07 23:15:46

正如 A Star 所建议的,我总是使用类似这样的内容:

DATE(NOW()) - INTERVAL 1 MONTH

同样你可以这样做:

NOW() + INTERVAL 5 MINUTE
"2013-01-01 00:00:00" + INTERVAL 10 DAY

等等。比一直输入 DATE_ADDDATE_SUB 容易得多:)!

As suggested by A Star, I always use something along the lines of:

DATE(NOW()) - INTERVAL 1 MONTH

Similarly you can do:

NOW() + INTERVAL 5 MINUTE
"2013-01-01 00:00:00" + INTERVAL 10 DAY

and so on. Much easier than typing DATE_ADD or DATE_SUB all the time :)!

南街女流氓 2024-09-07 23:15:46

我通常使用

DATE_ADD(CURDATE(), INTERVAL - 1 MONTH)

Which 几乎与 Pekka 相同,但是这样你可以控制你的 INTERVAL 为负数或正数......

I usually use

DATE_ADD(CURDATE(), INTERVAL - 1 MONTH)

Which is almost same as Pekka's but this way you can control your INTERVAL to be negative or positive...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文