समस्या:
आपके पास दिनांक प्रकार के दो कॉलम हैं और आप उनके बीच के अंतर की गणना करना चाहते हैं।
उदाहरण:
travel तालिका, तीन कॉलम हैं:id , departure , और arrival . आप arrival . के बीच अंतर की गणना करना चाहेंगे और departure , या arrival . से दिनों की संख्या समावेशी रूप से प्रस्थान करने के लिए।
travel तालिका इस तरह दिखती है:
| id | प्रस्थान | आगमन |
|---|---|---|
| 1 | 2018-03-25 | 2018-04-05 |
| 2 | 2019-09-12 | 2019-09-23 |
| 3 | 2018-07-14 | 2018-07-14 |
| 4 | 2018-01-05 | 2018-01-08 |
समाधान:
SELECT id, departure, arrival, DATEDIFF(arrival, departure) AS date_difference, DATEDIFF(arrival, departure) + 1 AS days_inclusive FROM travel;
नतीजा यह है:
| id | प्रस्थान | आगमन | <वें शैली="पृष्ठभूमि-रंग:#cecece">दिनांक_अंतरdays_inclusive | |
|---|---|---|---|---|
| 1 | 2018-03-25 | 2018-04-05 | 11 | 12 |
| 2 | 2019-09-12 | 2019-09-23 | 11 | 12 |
| 3 | 2018-07-14 | 2018-07-14 | 0 | 1 |
| 4 | 2018-01-05 | 2018-01-08 | 3 | 4 |
चर्चा:
MySQL में तिथियों के बीच अंतर की गणना करने के लिए, DATEDIFF(enddate, startdate) . का उपयोग करें समारोह। startdate . के बीच का अंतर और enddate दिनों में व्यक्त किया जाता है। इस मामले में, enddate arrivalहै और startdate है departure ।
अधिकांश मामलों में, हालांकि, आप वास्तव में पहली तारीख से दूसरी तारीख तक सहित दिनों की संख्या चाहते हैं। . आपको अंतर में 1 दिन जोड़ना होगा:DATEDIFF(arrival, departure) + 1 ।