首页 >数据库 >mysql教程 >INTERVAL 和 CURDATE 如何简化 MySQL 中的日期范围查询?

INTERVAL 和 CURDATE 如何简化 MySQL 中的日期范围查询?

Barbara Streisand
Barbara Streisand原创
2024-10-27 03:36:29566浏览

How can INTERVAL and CURDATE simplify date range queries in MySQL?

在 MySQL 中使用 INTERVAL 和 CURDATE

在 MySQL 中,您可以利用 INTERVAL 来简化涉及日期范围的查询。您可以使用 INTERVAL 指定相对于当前日期的范围,而不是编写多个查询来检索不同时间段的数据。

例如,要检索过去 12 个月的数据,您可以使用以下命令查询:

<code class="sql">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 > DATE_SUB(CURDATE(), INTERVAL 12 MONTH)
GROUP BY s.GSP_nom
ORDER BY avg DESC</code>

在此查询中,INTERVAL 12 MONTH 指定相对于当前日期的 12 个月范围。通过使用 DATE_SUB 从 CURDATE() 中减去此间隔,您可以定义范围的开始。

或者,您可以使用 DATE_ADD 将间隔添加到当前日期。例如,以下查询检索接下来 6 个月的数据:

<code class="sql">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 < DATE_ADD(CURDATE(), INTERVAL 6 MONTH)
GROUP BY s.GSP_nom
ORDER BY avg DESC</code>

通过了解 INTERVAL 的用法,您可以在 MySQL 中处理日期范围时简化查询。

以上是INTERVAL 和 CURDATE 如何简化 MySQL 中的日期范围查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn