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

MySQL में DATE और NULL रिकॉर्ड वाली तालिका से तिथियों को फ़िल्टर करना

MySQL में NULL मानों वाली तिथि कॉलम को फ़िल्टर करना

जब तिथि कॉलम में NULL मान हों, तो तुलना ऑपरेटर्स का उपयोग करते समय सावधानी बरतनी पड़ती है क्योंकि NULL के साथ कोई भी तुलना UNKNOWN लौटाती है।

व्यावहारिक उदाहरण

तालिका बनाना

mysql> CREATE TABLE DemoTable (
    FirstDate DATETIME,
    SecondDate DATETIME
);

रिकॉर्ड डालना (कुछ NULL के साथ)

mysql> INSERT INTO DemoTable VALUES('2019-01-21', '2018-01-21');
mysql> INSERT INTO DemoTable VALUES('2019-10-04', '2019-08-14');
mysql> INSERT INTO DemoTable VALUES('2019-05-01', '2019-09-11');
mysql> INSERT INTO DemoTable VALUES(NULL, NULL);
mysql> INSERT INTO DemoTable VALUES('2019-03-01', NULL);

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

mysql> SELECT * FROM DemoTable;

आउटपुट:

+---------------------+---------------------+
| FirstDate           | SecondDate          |
+---------------------+---------------------+
| 2019-01-21 00:00:00 | 2018-01-21 00:00:00 |
| 2019-10-04 00:00:00 | 2019-08-14 00:00:00 |
| 2019-05-01 00:00:00 | 2019-09-11 00:00:00 |
| NULL                | NULL                |
| 2019-03-01 00:00:00 | NULL                |
+---------------------+---------------------+

वर्तमान तिथि के आधार पर फ़िल्टर करने के लिए क्वेरी

mysql> SELECT * FROM DemoTable 
WHERE FirstDate <= CURDATE() 
AND (SecondDate >= CURDATE() OR SecondDate IS NULL);

आउटपुट:

+---------------------+---------------------+
| FirstDate           | SecondDate          |
+---------------------+---------------------+
| 2019-05-01 00:00:00 | 2019-09-11 00:00:00 |
| 2019-03-01 00:00:00 | NULL                |
+---------------------+---------------------+

मुख्य बिंदु

  • SecondDate IS NULL - NULL मानों को स्पष्ट रूप से जांचता है
  • OR ऑपरेटर - दूसरी तिथि या तो भविष्य में होनी चाहिए या NULL
  • यह पैटर्न "सक्रिय" रिकॉर्ड खोजने के लिए उपयोगी है जहां समाप्ति तिथि वैकल्पिक है
  1. - MySQL में NULL और NOT NULL रिकॉर्ड वाले कॉलम से केवल NOT NULL मान प्रदर्शित करें

    इसके लिए आप IS NOT NULL प्रॉपर्टी का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1 ( DueDate date ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable1 values(2019-09-10); Query OK, 1 r

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

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

  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