समस्या:
आपके पास दिनांक प्रकार के दो कॉलम हैं और आप उनके बीच के अंतर की गणना करना चाहते हैं।
उदाहरण:
travel
तालिका, तीन कॉलम हैं:id
, departure
, और arrival
. आप arrival
. के बीच अंतर की गणना करना चाहेंगे और departure
और आगमन से प्रस्थान तक के दिनों की संख्या सहित ।
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, JULIANDAY(arrival) - JULIANDAY(departure) AS date_difference, JULIANDAY(arrival) - JULIANDAY(departure) + 1 AS days_inclusive FROM travel;
नतीजा यह है:
id | प्रस्थान | आगमन | <वें शैली="पृष्ठभूमि-रंग:#cecece">दिनांक_अंतर <वें शैली="पृष्ठभूमि-रंग:#cecece">दिन||
---|---|---|---|---|
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 |
चर्चा:
तिथियों के बीच अंतर गिनने के लिए, JULIANDAY()
. का उपयोग करें समारोह, जो 24 नवंबर, 4714 ई.पू. को ग्रीनविच में दोपहर के बाद से दिनों की संख्या की गणना करता है। आप JULIANDAY(date)
. का उपयोग करें दो तिथियों में से प्रत्येक के लिए; केवल ऋण चिह्न (-) का उपयोग करके उन्हें घटाएं:
JULIANDAY(arrival) - JULIANDAY(departure)
ज्यादातर मामलों में, आप वास्तव में पहली तारीख से दूसरी तारीख तक सहित दिनों की संख्या चाहते हैं। . फिर आपको दिनों के अंतर में 1 दिन जोड़ना होगा:
JULIANDAY(arrival) - JULIANDAY(departure) + 1.