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

MySQL में DATE_SUB और INTERVAL से 15 दिन पुराने रिकॉर्ड प्राप्त करें

वर्तमान दिनांक से निश्चित अंतराल (जैसे 15 दिन) पहले की तारीख वाले रिकॉर्ड प्राप्त करने के लिए DATE_SUB() और INTERVAL का उपयोग करें।

टेबल बनाएं

mysql> CREATE TABLE DemoTable1845 (
    ArrivalDate DATE
);

डेटा डालें

mysql> INSERT INTO DemoTable1845 VALUES('2019-12-02');
mysql> INSERT INTO DemoTable1845 VALUES('2019-11-18');
mysql> INSERT INTO DemoTable1845 VALUES('2019-12-18');
mysql> INSERT INTO DemoTable1845 VALUES('2019-12-25');
mysql> INSERT INTO DemoTable1845 VALUES('2019-11-15');

वर्तमान दिनांक मान लें

mysql> SELECT NOW();
+---------------------+
| now()               |
+---------------------+
| 2019-12-02 20:47:05 |
+---------------------+

15 दिन पहले की तारीख से पुराने रिकॉर्ड

mysql> SELECT * FROM DemoTable1845
    WHERE ArrivalDate < DATE_SUB(NOW(), INTERVAL 15 DAY);

आउटपुट:

+-------------+
| ArrivalDate |
+-------------+
| 2019-11-15  |
+-------------+

व्याख्या

  • NOW() वर्तमान दिनांक-समय देता है।
  • DATE_SUB(NOW(), INTERVAL 15 DAY) → 15 दिन घटाता है = 2019-11-17।
  • ArrivalDate < '2019-11-17' वाली पंक्तियाँ चुनी जाती हैं।

अन्य INTERVAL इकाइयाँ

  • INTERVAL 1 DAY, INTERVAL 3 MONTH, INTERVAL 1 YEAR
  • INTERVAL 2 HOUR, INTERVAL 30 MINUTE, INTERVAL 10 SECOND
  • संयुक्त: INTERVAL '1 12:30:00' DAY_SECOND

सुझाव

  • केवल दिनांक कॉलम है तो CURDATE() उपयोग करें (NOW() में समय भी होता है)।
  • WHERE ArrivalDate <= DATE_SUB(CURDATE(), INTERVAL 15 DAY) अधिक सटीक।
  • इंडेक्स का लाभ लेने के लिए कॉलम पर फ़ंक्शन न लगाएं: WHERE ArrivalDate < ... सही है।
  1. - MySQL में GROUP BY से तारीखों के अनुसार रिकॉर्ड समूहित करें

    GROUP BY से ग्राहकवार न्यूनतम और अधिकतम शिपिंग तारीख प्राप्त करें ग्राहक नाम के अनुसार तारीखों को समूहित करके प्रत्येक ग्राहक की पहली और अंतिम शिपिंग तारीख पाएं। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable2002 ( CustomerName varchar(20), CustomerShippingDate datetime ); Query OK, 0 ro

  1. - MySQL में DATE_ADD से वर्तमान तारीख में 11 दिन जोड़ें

    WHERE CURDATE() और DATE_ADD से आज की तारीख में अंतराल जोड़ें आज की तारीख वाली पंक्तियों के लिए 11 दिन आगे की तारीख गणना करने के लिए DATE_ADD के साथ WHERE CURDATE() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1994 ( ArrivalDate date ); Query OK, 0 rows affected (5.33 sec)

  1. - MySQL में TRUE/FALSE रिकॉर्ड को 0/1 के रूप में प्रदर्शित करें

    समाधान कॉलम को BOOLEAN (TINYINT(1) का पर्याय) के रूप में परिभाषित करें। उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2035 (Name, isMarried) VALUES (Chris, TRUE), (David, FALSE), (Bob, TRUE), (Mike, FALSE); परिणाम +----+-------+-----------+ | Id | Name | isMarried | +----+-------+----