समस्या:
आप MySQL डेटाबेस में दो तिथियों के बीच, दिनों में, अंतर प्राप्त करना चाहते हैं।
उदाहरण:
हमारे डेटाबेस में food
कॉलम में डेटा के साथ id
, name
, purchase_date
, और expiration_date
।
आईडी | <थ>नाम <थ>खरीदारी_तिथि <थ>समाप्ति_तिथि|||
---|---|---|---|
1 | रोटी | 2019-07-20 | 2019-08-22 |
2 | मक्खन | 2018-07-30 | 2019-08-10 |
3 | दूध | 2019-01-12 | 2019-01-13 |
4 | दही | 2019-02-25 | 2019-02-24 |
प्रत्येक खाद्य उत्पाद के लिए, आइए उत्पाद का नाम और उसकी समाप्ति और खरीद तिथियों के बीच के दिनों की संख्या प्राप्त करें।
समाधान:
हम DATEDIFF()
. का उपयोग करेंगे समारोह। यहां वह प्रश्न है जो आप लिखेंगे:
SELECT name, DATEDIFF(expiration_date, purchase_date) AS days FROM food;
ये रहा क्वेरी का नतीजा:
नाम | दिन |
---|---|
रोटी | 33 |
मक्खन | 376 |
दूध | 1 |
दही | -1 |
चर्चा:
DATEDIFF()
का उपयोग करें MySQL डेटाबेस में दो तिथियों के बीच दिनों की संख्या को पुनः प्राप्त करने के लिए कार्य करता है। यह फ़ंक्शन दो तर्क लेता है:
- अंतिम तिथि। (हमारे उदाहरण में, यह
expiration_date
है कॉलम।) - प्रारंभ तिथि। (हमारे उदाहरण में, यह
purchase_date
है कॉलम।)
ये तर्क दिनांक/डेटाटाइम मान, दिनांक/डेटाटाइम मान लौटाने वाले भाव, या डेटाटाइम या दिनांक डेटा प्रकार के कॉलम हो सकते हैं।
यह फ़ंक्शन समाप्ति तिथि से प्रारंभ तिथि घटाता है और पूर्णांक के रूप में दिनों की संख्या देता है। हमारे उदाहरण में, मक्खन '2018-07-30' को खरीदा गया था, लेकिन इसकी समाप्ति तिथि '2019-08-10' थी; खरीदने के बाद इसे 376 दिनों तक खाया जा सकता था। ध्यान दें कि दही एक पुराने उत्पाद के रूप में खरीदा गया था:दिनों में अंतर -1 है और इसकी खरीद तिथि इसकी समाप्ति तिथि के बाद की है।