কম্পিউটার টিউটোরিয়াল

MySQL-এ DATE এবং NULL রেকর্ডসহ টেবিল থেকে তারিখ ফিল্টার করা


NULL মানवाले ডেট কলামের সাথে তারিখ রেঞ্জ কোয়েরি

যদি টেবিলে DATETIME কলামে NULL মান থাকে, তবে সাধারণ তুলনা (<=, >=) NULL রোকে বাদ দেয়। NULL রো রেখে ফিল্টার করতে IS NULL চেক যোগ করতে হয়।

টেবিল ও ডেটা

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

সব রেকর্ড

+---------------------+---------------------+
| 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                |
+---------------------+---------------------+

ব্যাখ্যা

  • FirstDate <= CURDATE() — শুরু তারিখ আজ বা তার আগে।
  • SecondDate >= CURDATE() OR SecondDate IS NULL — শেষ তারিখ আজ বা পরের, অথবা NULL (অনিশ্চিত সমাপ্তি) থাকলে ও 포함।
  • NULL রোগুলো IS NULL ছাড়া ফিল্টারে আসত না।
  1. MySQL-এ NULL এবং NON-NULL মান সহ গাণিতিক গণনা করা

  2. MySQL에서 IS NOT NULL로 NULL 제외하고 NOT NULL 값만 다른 테이블로 복사하기

  3. MySQL-এ IN() অপারেটর দিয়ে একক কোয়েরিতে একাধিক রেকর্ড ডিলিট করা

  4. MySQL-এ DATE_ADD ব্যবহার করে টেবিলের তারিখ আপডেট করা (বছর যোগ/বিয়োগ)