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ছাড়া ফিল্টারে আসত না।