मान लें एक टेबल है जिसमें एक कॉलम DueDate और दूसरा RepeatTime है, जो दर्शाता है कि उपयोगकर्ता को भुगतान जमा करने के लिए कितनी बार याद दिलाया गया।
टेबल बनाएं
mysql> create table DemoTable (
-> DueDate DATE,
-> RepeatTime INT
-> );
Query OK, 0 rows affected (0.57 sec)
रिकॉर्ड्स डालें
mysql> insert into DemoTable values('2019-01-23',3);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('2019-06-22',6);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('2019-03-28',2);
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable values('2017-07-25',6);
Query OK, 1 row affected (0.15 sec)
सभी रिकॉर्ड्स देखें
mysql> select * from DemoTable;
+------------+------------+ | DueDate | RepeatTime | +------------+------------+ | 2019-01-23 | 3 | | 2019-06-22 | 6 | | 2019-03-28 | 2 | | 2017-07-25 | 6 | +------------+------------+ 4 rows in set (0.00 sec)
दूसरे कॉलम के मान के आधार पर तिथि बढ़ाने का क्वेरी
mysql> UPDATE DemoTable SET DueDate = DATE_ADD(DueDate, INTERVAL RepeatTime MONTH) WHERE RepeatTime != 6; Query OK, 2 rows affected (0.25 sec) Rows matched: 2 Changed: 2 Warnings: 0
फिर से जांचें
mysql> select * from DemoTable;
+------------+------------+ | DueDate | RepeatTime | +------------+------------+ | 2019-04-23 | 3 | | 2019-06-22 | 6 | | 2019-05-28 | 2 | | 2017-07-25 | 6 | +------------+------------+ 4 rows in set (0.00 sec)
व्याख्या:
DATE_ADD(DueDate, INTERVAL RepeatTime MONTH)- RepeatTime महीने जोड़ेंWHERE RepeatTime != 6- केवल RepeatTime 6 नहीं वाली पंक्तियां अपडेट करें- पहली पंक्ति: 2019-01-23 + 3 महीने = 2019-04-23
- तीसरी पंक्ति: 2019-03-28 + 2 महीने = 2019-05-28
- दूसरी और चौथी पंक्ति अपरिवर्तित (RepeatTime=6)
संबंधित: DATE_SUB() घटाने के लिए, INTERVAL में DAY, WEEK, QUARTER, YEAR आदि उपयोग कर सकते हैं।