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

MySQL में जन्म तारीख से उम्र कैसे कैलकुलेट करें?

TIMESTAMPDIFF() फंक्शन का उपयोग

MySQL में जन्म तारीख से वर्तमान उम्र (वर्षों में) निकालने के लिए TIMESTAMPDIFF() फंक्शन सबसे सटीक तरीका है।

सिंटैक्स

SELECT TIMESTAMPDIFF(YEAR, yourDateColumn, NOW()) AS Age FROM yourTableName;

उदाहरण

1. टेबल बनाना

mysql> CREATE TABLE DemoTable (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentDOB DATETIME
);
Query OK, 0 rows affected (0.61 sec)

2. जन्म तारीख डालना

mysql> INSERT INTO DemoTable(StudentDOB) VALUES('1996-01-12');
mysql> INSERT INTO DemoTable(StudentDOB) VALUES('1990-12-31');
mysql> INSERT INTO DemoTable(StudentDOB) VALUES('1989-04-01');
mysql> INSERT INTO DemoTable(StudentDOB) VALUES('2000-06-17');

3. सभी रिकॉर्ड्स देखना

mysql> SELECT * FROM DemoTable;
+-----------+---------------------+
| StudentId | StudentDOB          |
+-----------+---------------------+
| 1         | 1996-01-12 00:00:00 |
| 2         | 1990-12-31 00:00:00 |
| 3         | 1989-04-01 00:00:00 |
| 4         | 2000-06-17 00:00:00 |
+-----------+---------------------+
4 rows in set (0.00 sec)

4. उम्र कैलकुलेट करना

mysql> SELECT TIMESTAMPDIFF(YEAR, StudentDOB, NOW()) AS Age FROM DemoTable;
+------+
| Age  |
+------+
| 23   |
| 28   |
| 30   |
| 18   |
+------+
4 rows in set (0.03 sec)

TIMESTAMPDIFF यूनिट विकल्प

यूनिट विवरण
MICROSECOND माइक्रोसेकंड
SECOND सेकंड
MINUTE मिनट
HOUR घंटा
DAY दिन
WEEK सप्ताह
MONTH महीना
QUARTER तिमाही
YEAR वर्ष

क्यों TIMESTAMPDIFF बेहतर है?

DATEDIFF की तुलना में:

-- गलत तरीका (केवल दिन गिनता है, लीप वर्ष नहीं संभालता)
SELECT FLOOR(DATEDIFF(NOW(), StudentDOB) / 365.25) FROM DemoTable;

-- सही तरीका
SELECT TIMESTAMPDIFF(YEAR, StudentDOB, NOW()) FROM DemoTable;
  • लीप वर्ष सही ढंग से संभालता है
  • महीना/दिन तुलना करता है, केवल दिन नहीं
  • सीधे वर्ष/महीना/दिन अंतर देता है

अतिरिक्त: वर्ष, महीना, दिन अलग-अलग

SELECT 
    TIMESTAMPDIFF(YEAR, StudentDOB, NOW()) AS Years,
    TIMESTAMPDIFF(MONTH, StudentDOB, NOW()) % 12 AS Months,
    FLOOR(DATEDIFF(NOW(), DATE_ADD(StudentDOB, INTERVAL TIMESTAMPDIFF(MONTH, StudentDOB, NOW()) MONTH)) / 30.44) AS Days
FROM DemoTable;

विशिष्ट तारीख के सापेक्ष उम्र

-- किसी विशिष्ट तारीख पर उम्र
SELECT TIMESTAMPDIFF(YEAR, StudentDOB, '2023-12-31') AS AgeOnDate
FROM DemoTable;
  1. - MySQL में SUBSTRING_INDEX से स्ट्रिंग से दिनांक निकालें

    MySQL में SUBSTRING_INDEX() फ़ंक्शन का उपयोग करके स्ट्रिंग के अंतिम भाग से दिनांक निकाल सकते हैं जब दिनांक एक ज्ञात विभाजक के बाद आता है। सिंटैक्स SUBSTRING_INDEX(SUBSTRING_INDEX(स्ट्रिंग, विभाजक, -1), विभाजक, 1) उदाहरण: लेबल.दिनांक प्रारूप से दिनांक निकालना 1. टेबल बनाएं ); 2. डेटा डालें INSE

  1. - MySQL में टाइमस्टैम्प मान से केवल तारीख प्रदर्शित करें

    टाइमस्टैम्प मान से केवल तारीख प्रदर्शित करने के लिए MySQL में FROM_UNIXTIME() मेथड का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> timestampValue bigint -> ); Query OK, 0 rows affected (0.70 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: my

  1. - MySQL में DEFAULT के साथ विशिष्ट विकल्पों वाली नई टेबल कैसे बनाएं

    समाधान कॉलम डेटा प्रकार के बाद DEFAULT कीवर्ड का उपयोग करें। उदाहरण ); डेटा डालें INSERT INTO demo33 (name, start_date, end_date, category) VALUES (David, 2020-03-10, 2020-08-22, Good); परिणाम +----+-------+------------+------------+----------+ | id | name | start_date | end_date | category