INTERVAL से डेटाटाइम में समय जोड़ना
MySQL में मौजूदा DATETIME कॉलम में वर्ष, महीना, दिन, घंटा और मिनट जोड़कर अपडेट करने के लिए एकाधिक INTERVAL एक्सप्रेशन को जोड़ सकते हैं।
टेबल बनाना और डेटा इन्सर्ट करना
CREATE TABLE DemoTable1509 (ArrivalTime DATETIME);
INSERT INTO DemoTable1509 VALUES('2018-01-21 10:20:30');
INSERT INTO DemoTable1509 VALUES('2019-04-01 11:00:00');
INSERT INTO DemoTable1509 VALUES('2015-12-12 05:45:20');
मौजूदा डेटा
+---------------------+ | ArrivalTime | +---------------------+ | 2018-01-21 10:20:30 | | 2019-04-01 11:00:00 | | 2015-12-12 05:45:20 | +---------------------+
क्वेरी: 10 साल 3 महीने 22 दिन 10 घंटे 30 मिनट जोड़ना
UPDATE DemoTable1509
SET ArrivalTime = ArrivalTime
+ INTERVAL 10 YEAR
+ INTERVAL 3 MONTH
+ INTERVAL 22 DAY
+ INTERVAL 10 HOUR
+ INTERVAL 30 MINUTE;
Query OK, 3 rows affected (0.17 sec) Rows matched: 3 Changed: 3 Warnings: 0
अपडेट के बाद डेटा
SELECT * FROM DemoTable1509;
+---------------------+ | ArrivalTime | +---------------------+ | 2028-05-13 20:50:30 | | 2029-07-23 21:30:00 | | 2026-04-03 16:15:20 | +---------------------+
गणना विवरण (पहली रो)
- मूल: 2018-01-21 10:20:30
- +10 साल → 2028-01-21 10:20:30
- +3 महीने → 2028-04-21 10:20:30
- +22 दिन → 2028-05-13 10:20:30
- +10 घंटे → 2028-05-13 20:20:30
- +30 मिनट → 2028-05-13 20:50:30
संक्षिप्त सिंटैक्स (MySQL 8.0+)
UPDATE DemoTable1509
SET ArrivalTime = ArrivalTime + INTERVAL '10-3' YEAR_MONTH
+ INTERVAL '22 10:30' DAY_HOUR;
DATE_ADD() फंक्शन विकल्प
UPDATE DemoTable1509 SET ArrivalTime = DATE_ADD(ArrivalTime, INTERVAL 10 YEAR); -- एकाधिक DATE_ADD नेस्ट करें या उपरोक्त INTERVAL जोड़ उपयोग करें
SELECT में उपयोग (बिना अपडेट)
SELECT ArrivalTime,
ArrivalTime + INTERVAL 10 YEAR + INTERVAL 3 MONTH + INTERVAL 22 DAY + INTERVAL 10 HOUR + INTERVAL 30 MINUTE AS NewArrivalTime
FROM DemoTable1509;
सावधानी
- महीना/वर्ष जोड़ने पर दिन ओवरफ्लो संभाल: 2028-01-31 + 1 महीना = 2028-02-29 (लीप वर्ष)
- समय क्षेत्र (Timezone) ध्यान में रखें अगर DATETIME की बजाय TIMESTAMP है
- बड़े अपडेट के लिए बैच प्रोसेसिंग करें