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

MySQL में किसी तिथि से 30 दिन पुरानी DATE रिकॉर्ड हटाएं

DELETE में INTERVAL के साथ सापेक्ष तिथि फ़िल्टर

एक संदर्भ तिथि से 30 दिन से अधिक पुरानी रिकॉर्ड हटाने के लिए DELETE में WHERE date_column < (reference_date - INTERVAL 30 DAY) का उपयोग करें।

सिंटैक्स

DELETE FROM yourTableName 
WHERE yourColumnName < (yourAnotherDateValue - INTERVAL 30 DAY);

टेबल और डेटा

mysql> CREATE TABLE DemoTable (
    DueDate DATE
);
Query OK, 0 rows affected (0.68 sec)
mysql> INSERT INTO DemoTable VALUES('2019-08-25');
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DemoTable VALUES('2019-07-01');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable VALUES('2019-06-20');
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable VALUES('2019-09-02');
Query OK, 1 row affected (0.14 sec)

सभी रिकॉर्ड

mysql> SELECT * FROM DemoTable;
+------------+
| DueDate    |
+------------+
| 2019-08-25 |
| 2019-07-01 |
| 2019-06-20 |
| 2019-09-02 |
+------------+
4 rows in set (0.00 sec)

2019-08-31 से 30 दिन पहले (2019-08-01) से पुरानी रिकॉर्ड हटाना

mysql> DELETE FROM DemoTable WHERE DueDate < ('2019-08-31' - INTERVAL 30 DAY);
Query OK, 2 rows affected (0.22 sec)

शेष रिकॉर्ड

mysql> SELECT * FROM DemoTable;
+------------+
| DueDate    |
+------------+
| 2019-08-25 |
| 2019-09-02 |
+------------+
2 rows in set (0.00 sec)

व्याख्या: '2019-08-31' - 30 दिन = '2019-08-01'। इससे पुरानी तिथियां: '2019-07-01' और '2019-06-20' हटा दी गईं। '2019-08-25' और '2019-09-02' बनी रहीं।

सापेक्ष संदर्भ तिथि के लिए: WHERE DueDate < (CURDATE() - INTERVAL 30 DAY) वर्तमान तिथि से 30 दिन पुरानी रिकॉर्ड हटाता है।

  1. - MySQL क्वेरी: 14 दिन से अधिक हाल की तिथि प्राप्त करना

    DATE_SUB() और INTERVAL का उपयोग करके हाल की तिथियां फ़िल्टर करना पहले टेबल बनाएं: create table DemoTable1392 ( ArrivalDate date ); Query OK, 0 rows affected (0.43 sec) रिकॉर्ड डालें: insert into DemoTable1392 values(2019-10-11); Query OK, 1 row affected (0.11 sec) सभी रिकॉर्ड देखें: select * from

  1. - MySQL में 5 मिनट से पुराने टाइमस्टैम्प रिकॉर्ड हटाएं

    DELETE के साथ NOW() - INTERVAL 5 MINUTE का उपयोग करके 5 मिनट से पुराने टाइमस्टैम्प वाली पंक्तियाँ हटाएं। टेबल बनाएं mysql> CREATE TABLE DemoTable1851 (DueDate DATETIME); डेटा डालें mysql> INSERT INTO DemoTable1851 VALUES(2019-12-03 21:30:35); mysql> INSERT INTO DemoTable1851 VALUES(2019-1

  1. - MySQL में IN() क्लॉज़ के साथ एक क्वेरी में रिकॉर्ड कैसे डिलीट करें?

    MySQL में एक ही क्वेरी में एकाधिक विशिष्ट रिकॉर्ड डिलीट करने के लिए, DELETE स्टेटमेंट के साथ IN() ऑपरेटर का उपयोग करें। यह एकाधिक DELETE स्टेटमेंट चलाने से अधिक कुशल और पठनीय है। उदाहरण: विशिष्ट StudentId वाले रिकॉर्ड डिलीट करना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1922 ( StudentI