我正在构建图表,我想接收每个月的数据。
这是我的第一个有效的请求:
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的例子吗?
最新回答
- 1月前1 #
- 1月前2 #
正如A Star所建议的,我总是按照以下方式使用某些东西:
DATE(NOW()) - INTERVAL 1 MONTH
类似地,您可以执行以下操作:
NOW() + INTERVAL 5 MINUTE "2013-01-01 00:00:00" + INTERVAL 10 DAY
,依此类推.比输入
DATE_ADD
容易得多 或DATE_SUB
一直都是:)! - 1月前3 #
我通常使用
DATE_ADD(CURDATE(), INTERVAL - 1 MONTH)
与Pekka几乎相同,但是通过这种方式,您可以控制INTERVAL为负值或正值...
相关问题
- 创建JavaScript日期时如何指定时区?javascriptdatedatetimeutc2021-01-11 22:24
- 如何从MySQL中的日期时间中减去小时?mysqldatetimegmt2021-01-11 07:56
- 如何使用JSON对JavaScript日期进行字符串化并保留时区javascriptjsondatedatetimemomentjs2021-01-08 23:56
- .net:使用C#为MySQL转换DateTimec#netmysqldatetimedatetimeconversion2021-01-08 16:56
- mysql:SQL查询显示最近的日期?mysqlsqldatetime2021-01-08 15:24
您需要
DATE_ADD/DATE_SUB
:应该可以。