MySQL में DATE_SUB() और INTERVAL का उपयोग करके वर्तमान दिनांक से 15 या अधिक दिन पुराने रिकॉर्ड प्राप्त करें।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
-> ArrivalDate DATETIME
-> );
Query OK, 0 rows affected (0.91 sec)
मान लें वर्तमान दिनांक 2019-07-03 है:
mysql> INSERT INTO DemoTable VALUES
-> ('2019-07-03'), -- आज (0 दिन पुराना)
-> ('2019-06-20'), -- 13 दिन पुराना
-> ('2019-06-15'), -- 18 दिन पुराना
-> ('2018-06-11'), -- 1+ साल पुराना
-> ('2018-06-01'); -- 1+ साल पुराना
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+---------------------+ | ArrivalDate | +---------------------+ | 2019-07-03 00:00:00 | | 2019-06-20 00:00:00 | | 2019-06-15 00:00:00 | | 2018-06-11 00:00:00 | | 2018-06-01 00:00:00 | +---------------------+ 5 rows in set (0.00 sec)
15+ दिन पुराने रिकॉर्ड प्राप्त करने की क्वेरी
mysql> SELECT * FROM DemoTable
-> WHERE ArrivalDate < DATE_SUB(NOW(), INTERVAL 15 DAY)
-> ORDER BY ArrivalDate DESC;
आउटपुट
+---------------------+ | ArrivalDate | +---------------------+ | 2019-06-15 00:00:00 | | 2018-06-11 00:00:00 | | 2018-06-01 00:00:00 | +---------------------+ 3 rows in set (0.00 sec)
व्याख्या:
NOW()वर्तमान दिनांक-समय लौटाता हैDATE_SUB(NOW(), INTERVAL 15 DAY)15 दिन पहले की दिनांक देता है (2019-06-18)ArrivalDate < ...उन रिकॉर्ड को चुनता है जो 15 दिन से अधिक पुराने हैंORDER BY ArrivalDate DESCनवीनतम से सबसे पुराने क्रम में
वैकल्पिक सिंटैक्स: WHERE ArrivalDate <= DATE_SUB(CURDATE(), INTERVAL 15 DAY) (केवल दिनांक तुलना के लिए)।
प्रदर्शन टिप: ArrivalDate पर इंडेक्स होने से यह क्वेरी तेज़ होगी।