MySQL में UPDATE और DATE_ADD() से एक डेटाटाइम कॉलम का मान दूसरे में कॉपी/संशोधित करना
परिदृश्य
एक टेबल में दो डेटाटाइम कॉलम हैं: IssueDate और DueDate। DueDate को IssueDate के सापेक्ष (relative) सेट करना है।
व्यावहारिक उदाहरण
1. टेबल बनाएं:
mysql> CREATE TABLE AddDateTimeWithOther (
-> Id INT,
-> IssueDate DATETIME,
-> DueDate DATETIME
-> );
Query OK, 0 rows affected (0.69 sec)
2. सापेक्ष तारीखों के साथ डेटा डालें:
mysql> INSERT INTO AddDateTimeWithOther VALUES(100, NOW(), DATE_ADD(NOW(), INTERVAL -3 YEAR)); mysql> INSERT INTO AddDateTimeWithOther VALUES(101, NOW(), DATE_ADD(NOW(), INTERVAL 2 YEAR));
3. डाला गया डेटा:
+------+---------------------+---------------------+ | Id | IssueDate | DueDate | +------+---------------------+---------------------+ | 100 | 2018-12-11 17:33:28 | 2015-12-11 17:33:28 | | 101 | 2018-12-11 17:33:37 | 2020-12-11 17:33:37 | +------+---------------------+---------------------+ 2 rows in set (0.00 sec)
4. DueDate अपडेट करें (Id=100 के लिए):
mysql> UPDATE AddDateTimeWithOther
-> SET DueDate = DATE_ADD(NOW(), INTERVAL 1 YEAR)
-> WHERE Id = 100;
Query OK, 1 row affected (0.24 sec)
5. अपडेट के बाद:
+------+---------------------+---------------------+ | Id | IssueDate | DueDate | +------+---------------------+---------------------+ | 100 | 2018-12-11 17:33:28 | 2019-12-11 17:35:03 | | 101 | 2018-12-11 17:33:37 | 2020-12-11 17:33:37 | +------+---------------------+---------------------+ 2 rows in set (0.00 sec)
DATE_ADD() इंटरवल सिंटैक्स:
DATE_ADD(date, INTERVAL expr unit)
| यूनिट | उदाहरण |
|---|---|
| SECOND | INTERVAL 30 SECOND |
| MINUTE | INTERVAL 45 MINUTE |
| HOUR | INTERVAL 2 HOUR |
| DAY | INTERVAL 7 DAY |
| MONTH | INTERVAL 3 MONTH |
| YEAR | INTERVAL 1 YEAR |
| MINUTE_SECOND | INTERVAL '10:30' MINUTE_SECOND |
| DAY_HOUR | INTERVAL '2 10' DAY_HOUR |
अन्य उपयोगी डेटा फंक्शन:
-- दो डेटा के बीच अंतर (दिनों में)
SELECT DATEDIFF(date1, date2);
-- एक डेटा में समय जोड़ें
SELECT ADDTIME('2023-01-01 10:00:00', '02:30:00');
-- वर्तमान टाइमस्टैम्प
SELECT NOW(); -- डेटा + समय
SELECT CURDATE(); -- केवल डेटा
SELECT CURTIME(); -- केवल समय