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

MySQL में महीनों में दो तिथियों के बीच अंतर की गणना कैसे करें

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

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

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

SELECT TIMESTAMPDIFF(MONTH, '2012-05-05', '2012-06-04')
-- 0
SELECT TIMESTAMPDIFF(MONTH, '2012-05-05', '2012-06-05')
-- 1
SELECT TIMESTAMPDIFF(MONTH, '2012-05-05', '2012-06-15')
-- 1
SELECT TIMESTAMPDIFF(MONTH, '2012-05-05', '2012-12-16')
-- 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. अलग-अलग कॉलम पर एक ही टेबल को दो बार जोड़ना

  2. खंड के बिना दो अलग-अलग तालिकाओं से दो स्तंभों के योग की गणना कैसे करें?

  3. किसी फ़ील्ड को दोहराए बिना डेटाबेस रिकॉर्ड्स को दृश्य में कैसे प्रदर्शित करें?

  4. MySQL:अद्यतन पंक्तियों को वापस करें

  5. GROUP BY में सभी मदों की संख्या के लिए गणना (*) का प्रतिशत प्राप्त करना