Database
 sql >> डेटाबेस >  >> RDS >> Database

टी-एसक्यूएल में दो तिथियों के बीच अंतर की गणना कैसे करें

समस्या:

आपके पास दिनांक प्रकार के दो कॉलम हैं और आप उनके बीच के अंतर की गणना करना चाहते हैं।

उदाहरण:

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(day, departure, arrival) AS date_difference,
  DATEDIFF(day, departure, arrival) + 1 AS days_inclusive
FROM travel;

नतीजा यह है:

<वें शैली="पृष्ठभूमि-रंग:#cecece">दिनांक_अंतर <वें शैली="पृष्ठभूमि-रंग:#cecece">दिन
id प्रस्थान आगमन
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

चर्चा:

तिथियों के बीच अंतर जानने के लिए, DATEDIFF(datepart, startdate, enddate) का उपयोग करें समारोह। datepart तर्क दिनांक/दिनांक समय के उस भाग को परिभाषित करता है जिसमें आप अंतर व्यक्त करना चाहते हैं। इसका मान year . हो सकता है , quarter , month , day , minute , आदि। इस उदाहरण में, आप दिनों में अंतर व्यक्त करना चाहते हैं, इसलिए पहला तर्क दिन है। दो अन्य तर्क हैं जिस तारीख से आप गिनती शुरू करते हैं और वह तारीख जब आप गिनती बंद करते हैं - इस मामले में, departure और arrival , क्रमशः।

ज्यादातर मामलों में, आप वास्तव में पहली तारीख से दूसरी तारीख तक सहित दिनों की संख्या चाहते हैं। . फिर आपको दिनों के अंतर में 1 दिन जोड़ना होगा:DATEDIFF(day, departure, arrival) + 1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पंक्ति क्रमांकन माध्यिका समाधान में सुधार

  2. स्कीमा माइग्रेशन:स्टार से रिलेशनल

  3. दो विभाजन विशिष्टताओं

  4. Transact-SQL का उपयोग करके दृश्य की परिभाषा प्राप्त करने के 4 तरीके

  5. ट्रैपिंग लिंक्ड सर्वर त्रुटियाँ