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

MySQL में तारीखों के बीच महीनों का अंतर

किसी भी दो तिथियों के बीच माह-अंतर:

मुझे आश्चर्य है कि इसका अभी तक उल्लेख नहीं किया गया है:

TIMESTAMPDIFF() MySQL में कार्य करें।

यह आपको दो TIMESTAMP . में पास करने की अनुमति देता है या DATETIME मान (या यहां तक ​​कि DATE चूंकि MySQL स्वतः रूपांतरित हो जाएगा) और साथ ही उस समय की इकाई जिसे आप अपने अंतर को आधार बनाना चाहते हैं।

आप MONTH specify निर्दिष्ट कर सकते हैं पहले पैरामीटर में इकाई के रूप में:

SELECT TIMESTAMPDIFF(MONTH, '2012-05-05', '2012-06-04')
-- Outputs: 0
SELECT TIMESTAMPDIFF(MONTH, '2012-05-05', '2012-06-05')
-- Outputs: 1
SELECT TIMESTAMPDIFF(MONTH, '2012-05-05', '2012-06-15')
-- Outputs: 1
SELECT TIMESTAMPDIFF(MONTH, '2012-05-05', '2012-12-16')
-- Outputs: 7

यह मूल रूप से पैरामीटर सूची में पहली तारीख से बीत चुके महीनों की संख्या प्राप्त करता है। यह समाधान स्वचालित रूप से प्रत्येक महीने (28,30,31) में अलग-अलग दिनों के साथ-साथ लीप वर्षों को ध्यान में रखते हुए क्षतिपूर्ति करता है - आपको उस सामान के बारे में चिंता करने की आवश्यकता नहीं है।

माह-अंतर सटीकता के साथ:

यदि आप बीते हुए महीनों की संख्या में दशमलव परिशुद्धि का परिचय देना चाहते हैं तो यह थोड़ा अधिक जटिल है, लेकिन यहां बताया गया है कि आप इसे कैसे कर सकते हैं:

SELECT 
  TIMESTAMPDIFF(MONTH, startdate, enddate) +
  DATEDIFF(
    enddate,
    startdate + INTERVAL
      TIMESTAMPDIFF(MONTH, startdate, enddate)
    MONTH
  ) /
  DATEDIFF(
    startdate + INTERVAL
      TIMESTAMPDIFF(MONTH, startdate, enddate) + 1
    MONTH,
    startdate + INTERVAL
      TIMESTAMPDIFF(MONTH, startdate, enddate)
    MONTH
  )

जहां startdate और enddate आपके दिनांक पैरामीटर हैं, चाहे वह किसी तालिका में दो दिनांक स्तंभों से हो या किसी स्क्रिप्ट से इनपुट पैरामीटर के रूप में:

उदाहरण:

With startdate = '2012-05-05' AND enddate = '2012-05-27':
-- Outputs: 0.7097
With startdate = '2012-05-05' AND enddate = '2012-06-13':
-- Outputs: 1.2667
With startdate = '2012-02-27' AND enddate = '2012-06-02':
-- Outputs: 3.1935


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर डेटाबेस को MySQL में माइग्रेट कैसे करें?

  2. MySQL में एक कॉलम का नाम बदलें

  3. एक समय सीमा के भीतर 5 मिनट के अंतराल में समूह बनाना

  4. MySQL के साथ STRAIGHT_JOIN का उपयोग कब करें

  5. संख्या के रूप में SQL ऑर्डर स्ट्रिंग