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

MySQL में डेट रिकॉर्ड्स के आधार पर कॉलम अपडेट करके वर्तमान तारीख से पहले के रिकॉर्ड्स के लिए 1 सेट करना

CURDATE() के साथ डेट तुलना करके स्टेटस अपडेट करना

वर्तमान तारीख से पहले या बराबर की एक्सपायरी डेट वाले प्रोडक्ट्स का स्टेटस 1 पर सेट करने के लिए UPDATE के साथ CURDATE() का उपयोग करें।

मान लें वर्तमान तारीख है 2019-08-20।

आइए पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable (
    ProductStatus TINYINT(1),
    ProductExpiryDate DATE
);

रिकॉर्ड्स इन्सर्ट करें:

mysql> INSERT INTO DemoTable VALUES (0, '2019-06-12');
mysql> INSERT INTO DemoTable VALUES (0, '2019-10-11');
mysql> INSERT INTO DemoTable VALUES (0, '2018-07-24');
mysql> INSERT INTO DemoTable VALUES (0, '2018-09-05');

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

mysql> SELECT * FROM DemoTable;

आउटपुट:

+---------------+-------------------+
| ProductStatus | ProductExpiryDate |
+---------------+-------------------+
| 0             | 2019-06-12        |
| 0             | 2019-10-11        |
| 0             | 2018-07-24        |
| 0             | 2018-09-05        |
+---------------+-------------------+

वर्तमान तारीख (2019-08-20) से पहले या बराबर की एक्सपायरी डेट वाले रिकॉर्ड्स के लिए ProductStatus = 1 सेट करें:

mysql> UPDATE DemoTable
    SET ProductStatus = 1
    WHERE ProductExpiryDate <= CURDATE();

आउटपुट: Query OK, 3 rows affected (Rows matched: 3, Changed: 3)

टेबल रिकॉर्ड्स फिर से जांचें:

mysql> SELECT * FROM DemoTable;

आउटपुट:

+---------------+-------------------+
| ProductStatus | ProductExpiryDate |
+---------------+-------------------+
| 1             | 2019-06-12        |
| 0             | 2019-10-11        |
| 1             | 2018-07-24        |
| 1             | 2018-09-05        |
+---------------+-------------------+

व्याख्या:

  • CURDATE(): वर्तमान तारीख लौटाता है (2019-08-20)
  • ProductExpiryDate <= CURDATE(): एक्सपायरी डेट आज या पहले है
  • 2019-06-12, 2018-07-24, 2018-09-05 → सभी 2019-08-20 से पहले हैं → Status = 1
  • 2019-10-11 → भविष्य में है → Status = 0 (अपरिवर्तित)

व्यावहारिक उपयोग: एक्सपायर्ड प्रोडक्ट्स फ्लैग करना, ओवरड्यू टास्क्स मार्क करना, एक्सपायर्ड सब्सक्रिप्शन निष्क्रिय करना।

नोट: यदि ProductStatus पहले से 1 है, तो MySQL उसे "बदला हुआ" नहीं मानेगा (Changed काउंट में नहीं गिना जाएगा)।

  1. - MySQL में MONTH() और DAY() का उपयोग करके वर्तमान दिनांक के दिन और महीने के साथ तिथि रिकॉर्ड्स की तुलना करना

    MySQL में दिन और महीने के आधार पर तिथि फ़िल्टरिंग वर्ष की परवाह किए बिना विशिष्ट दिन और महीने पर पड़ने वाली तिथियों को ढूंढने के लिए (जैसे वर्षगाँठ, जन्मदिन), MONTH() और DAY() फ़ंक्शन का उपयोग करके तिथि भागों की तुलना करें। उदाहरण: आज की तिथि से मेल खाने वाली वर्षगाँठ ढूंढना पहले एक वर्षगाँठ तिथि ट

  1. - MySQL में कॉलम मान 'None' को 'N/A' से कैसे अपडेट करें?

    कई बार डेटाबेस में None जैसे स्ट्रिंग मान स्टोर हो जाते हैं जो वास्तव में NULL या अनुपलब्ध डेटा दर्शाते हैं। ऐसे मानों को अधिक सार्थक N/A (Not Available) से बदलने के लिए MySQL का UPDATE स्टेटमेंट उपयोग करें। उदाहरण: None को N/A में बदलना डेमो टेबल बनाएं और डेटा इन्सर्ट करें: mysql> CREATE TABL

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

    UPDATE और DATE_ADD() से मौजूदा तारीखों में अंतराल जोड़ें मौजूदा तारीख कॉलम में वर्ष (या अन्य अंतराल) जोड़ने के लिए UPDATE के साथ DATE_ADD() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec) mysql> insert into