DATEDIFF() और DATE_FORMAT() से जन्म तिथि से उम्र गणना करें
MySQL में उम्र गणना करने का सामान्य तरीका: वर्तमान दिनांक और जन्म तिथि के बीच दिनों का अंतर निकालें, दिनों को वर्ष में बदलें।
सिंटैक्स
SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), 'जन्म_तिथि')), '%Y') + 0 AS Age;
चरण-दर-चरण व्याख्या
DATEDIFF(NOW(), 'जन्म_तिथि'): दिनों में अंतरFROM_DAYS(दिन): दिनों को दिनांक में बदलता है (वर्ष 0 से गिनती)DATE_FORMAT(..., '%Y'): वर्ष भाग निकालता है (स्ट्रिंग)+ 0: स्ट्रिंग को संख्या में बदलता है
उदाहरण
सीधी गणना
mysql> SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), '2010-11-25')), '%Y') + 0 AS Age;
+------+ | Age | +------+ | 8 | +------+
टेबल से
mysql> CREATE TABLE AgeCalculationFromDatetime (YourDateofBirth DATETIME);
mysql> INSERT INTO AgeCalculationFromDatetime VALUES('1995-11-25');
mysql> SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), YourDateofBirth)), '%Y') + 0 AS Age
-> FROM AgeCalculationFromDatetime;
+------+ | Age | +------+ | 23 | +------+
बेहतर विकल्प (MySQL 8.0+): TIMESTAMPDIFF
SELECT TIMESTAMPDIFF(YEAR, '1995-11-25', CURDATE()) AS Age;
लाभ: सीधे वर्षों में अंतर देता है, लीप वर्ष सही संभालता है, अधिक पठनीय।
सटीक उम्र (वर्ष, महीना, दिन)
SELECT
TIMESTAMPDIFF(YEAR, birth_date, CURDATE()) AS years,
TIMESTAMPDIFF(MONTH, birth_date, CURDATE()) % 12 AS months,
FLOOR(DATEDIFF(CURDATE(), birth_date) % 30.4375) AS days;
नोट्स
DATEDIFFदिनांक भाग की तुलना करता है (समय अनदेखा करता है)FROM_DAYSवर्ष 0 से दिन गिनता है (ग्रेगोरियन कैलेंडर नहीं)TIMESTAMPDIFFवास्तविक कैलेंडर तर्क का उपयोग करता है - अनुशंसित