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

MySQL में 30 दिन से पुरानी सभी पंक्तियां कैसे हटाएं? DELETE with INTERVAL

30 दिन से पुरानी सभी पंक्तियां हटाने के लिए, DELETE के साथ INTERVAL का उपयोग करें। वर्तमान तिथि से पहले के रिकॉर्ड्स प्राप्त करने के लिए < NOW() यानी कम-से ऑपरेटर का उपयोग करें।

टेबल बनाएं

mysql> create table DemoTable (
    -> UserMessage text,
    -> UserMessageSentDate date
    -> );
Query OK, 0 rows affected (0.59 sec)

रिकॉर्ड्स डालें

mysql> insert into DemoTable values('Hi','2019-06-01');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('Hello','2019-07-02');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Awesome','2019-05-04');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Good','2019-01-10');
Query OK, 1 row affected (0.35 sec)

सभी रिकॉर्ड्स देखें

mysql> select * from DemoTable;
+-------------+---------------------+
| UserMessage | UserMessageSentDate |
+-------------+---------------------+
| Hi          | 2019-06-01          |
| Hello       | 2019-07-02          |
| Awesome     | 2019-05-04          |
| Good        | 2019-01-10          |
+-------------+---------------------+
4 rows in set (0.00 sec)

30 दिन से पुरानी पंक्तियां हटाने का क्वेरी

mysql> delete from DemoTable where UserMessageSentDate < NOW() - INTERVAL 30 DAY;
Query OK, 3 rows affected (0.11 sec)

फिर से जांचें

mysql> select * from DemoTable;
+-------------+---------------------+
| UserMessage | UserMessageSentDate |
+-------------+---------------------+
| Hello       | 2019-07-02          |
+-------------+---------------------+
1 row in set (0.00 sec)

मुख्य बिंदु:

  • NOW() - वर्तमान तिथि और समय
  • INTERVAL 30 DAY - 30 दिन का अंतराल
  • < - सख्ती से पुराना (30 दिन पहले या उससे पुराना)
  • DATE कॉलम के साथ NOW() की तुलना स्वचालित रूप से तिथि भाग का उपयोग करती है

सावधानी: हमेशा DELETE से पहले SELECT से जांचें कि कौन सी पंक्तियां प्रभावित होंगी।

  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 में FROM_UNIXTIME और NOW से 1 दिन से पुराने टाइमस्टैम्प वाली पंक्तियाँ प्राप्त करें

    सिंटैक्स select * from yourTable where from_unixtime(unixTimestampCol) < now() - interval 1 day; उदाहरण: यूनिक्स टाइमस्टैम्प कॉलम insert into demo75 values(unix_timestamp(2020-01-10)), (unix_timestamp(2020-11-19)), (unix_timestamp(2020-12-18)), (unix_timestamp(2020-11-10)); क्वेरी और परिणाम (मान