mysql - update - हाउ तो वोट#इंडिया डेट




MySQL में INTERVAL और CURDATE के साथ काम करना (2)

मैं एक चार्ट बना रहा हूं और मैं प्रत्येक महीने के लिए डेटा प्राप्त करना चाहता हूं।

यहाँ मेरा पहला अनुरोध है जो काम कर रहा है:

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

कार्य करना चाहिए।


ए स्टार द्वारा सुझाए गए अनुसार, मैं हमेशा कुछ का उपयोग करता हूं:

DATE(NOW()) - INTERVAL 1 MONTH

इसी तरह आप कर सकते हैं:

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

और इसी तरह। हर समय DATE_ADD या DATE_SUB टाइप करने से बहुत आसान :)!





intervals