समस्या:
आपके पास दिनांक प्रकार के दो कॉलम हैं और आप उनके बीच के अंतर की गणना करना चाहते हैं।
उदाहरण:
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, arrival - departure AS date_difference, arrival - departure + 1 AS days 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 |
चर्चा:
PostgreSQL या Oracle में तिथियों के बीच के अंतर को गिनने के लिए, आपको बस एक तारीख को दूसरे से घटाना होगा, उदा। arrival - departure
.
लेकिन ज्यादातर मामलों में, आप वास्तव में पहली तारीख से दूसरी तारीख तक सहित दिनों की संख्या चाहते हैं। . फिर आपको दिनों के अंतर में 1 दिन जोड़ना होगा:arrival - departure + 1
।