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