sf_*_*anb 38 mysql datetime date intervals
我正在构建一个图表,我希望每个月都能收到数据.
这是我的第一个请求:
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
Run Code Online (Sandbox Code Playgroud)
但是,在我的情况下,我要编写12个请求来接收前12个月的数据,是否有任何技巧可以避免编写:
// example for the previous month
AND v.date > CURDATE() -60
AND v.date < CURDATE () -30
Run Code Online (Sandbox Code Playgroud)
我听说过INTERVAL,我去了MySQL文档,但我没有设法实现它.
有任何使用INTERVAL的例子吗?
Pek*_*ica 64
AND v.date > (DATE_SUB(CURDATE(), INTERVAL 2 MONTH))
AND v.date < (DATE_SUB(CURDATE(), INTERVAL 1 MONTH))
Run Code Online (Sandbox Code Playgroud)
应该管用.
sed*_*ddy 23
正如A Star所建议的,我总是使用以下内容:
DATE(NOW()) - INTERVAL 1 MONTH
Run Code Online (Sandbox Code Playgroud)
同样你可以这样做:
NOW() + INTERVAL 5 MINUTE
"2013-01-01 00:00:00" + INTERVAL 10 DAY
Run Code Online (Sandbox Code Playgroud)
等等.比打字DATE_ADD
或DATE_SUB
所有时间容易得多:)!
con*_*fiq 16
我经常使用
DATE_ADD(CURDATE(), INTERVAL - 1 MONTH)
Run Code Online (Sandbox Code Playgroud)
这与Pekka几乎相同,但这样你可以控制你的INTERVAL为负面或正面......