Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में जन्म तिथि से उम्र कैसे गणना करें?


DATEDIFF() और DATE_FORMAT() से जन्म तिथि से उम्र गणना करें

MySQL में उम्र गणना करने का सामान्य तरीका: वर्तमान दिनांक और जन्म तिथि के बीच दिनों का अंतर निकालें, दिनों को वर्ष में बदलें।

सिंटैक्स

SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), 'जन्म_तिथि')), '%Y') + 0 AS Age;

चरण-दर-चरण व्याख्या

  1. DATEDIFF(NOW(), 'जन्म_तिथि'): दिनों में अंतर
  2. FROM_DAYS(दिन): दिनों को दिनांक में बदलता है (वर्ष 0 से गिनती)
  3. DATE_FORMAT(..., '%Y'): वर्ष भाग निकालता है (स्ट्रिंग)
  4. + 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 वास्तविक कैलेंडर तर्क का उपयोग करता है - अनुशंसित
  1. - MySQL में UK दिनांक प्रारूप (DD/MM/YYYY) को MySQL DATE में परिवर्तित करना

    UK दिनांक प्रारूप (दिन/महीना/वर्ष - DD/MM/YYYY) को MySQL मानक DATE प्रारूप (YYYY-MM-DD) में परिवर्तित करने के लिए STR_TO_DATE() फ़ंक्शन का उपयोग करें। सिंटैक्स SELECT STR_TO_DATE(date_column, %d/%m/%Y) FROM table_name; प्रारूप स्पेसिफायर्स स्पेसिफायरअर्थउदाहरण %dदिन (01-31)31 %mमहीना (01-12)12 %Y

  1. - MySQL में जन्म तिथि (Date of Birth) रिकॉर्ड के आधार पर दिन का नाम कैसे प्रदर्शित करें

    जन्म तिथि वाले रिकॉर्ड से दिन का नाम प्रदर्शित करने के लिए DAYNAME() का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable795 ( DateOfBirth date ); Query OK, 0 rows affected (0.61 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable7

  1. - MySQL में सेकंड के आधार पर समय की गणना करना

    MySQL में TIME_TO_SEC और SEC_TO_TIME के साथ समय गणना MySQL में समय मानों पर अंकगणितीय संक्रियाएं करने के लिए, उन्हें सेकंड में परिवर्तित करें, गणना करें, फिर वापस समय फॉर्मेट में परिवर्तित करें। व्यावहारिक उदाहरण तालिका बनाना CREATE TABLE DemoTable ( LogoutTime TIME ); समय मान डालना INSERT