বর্তমান তারিখ থেকে ৩ সপ্তাহ আগের তারিখের পরের রেকর্ড পেতে DATE_SUB() ব্যবহার করুন। প্রথমে একটি টেবিল তৈরি করি:
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ArrivalDate DATETIME
);
ধরে নিচ্ছি আজকের তারিখ ২০১৯-০৬-০৮। রেকর্ড যোগ করি:
mysql> INSERT INTO DemoTable(ArrivalDate) VALUES('2019-05-15');
mysql> INSERT INTO DemoTable(ArrivalDate) VALUES('2019-06-08');
mysql> INSERT INTO DemoTable(ArrivalDate) VALUES('2019-05-20');
mysql> INSERT INTO DemoTable(ArrivalDate) VALUES('2019-05-12');
সকল রেকর্ড দেখতে:
mysql> SELECT * FROM DemoTable;
আউটপুট:
+----+---------------------+ | Id | ArrivalDate | +----+---------------------+ | 1 | 2019-05-15 00:00:00 | | 2 | 2019-06-08 00:00:00 | | 3 | 2019-05-20 00:00:00 | | 4 | 2019-05-12 00:00:00 | +----+---------------------+
বর্তমান তারিখ থেকে ৩ সপ্তাহ আগে (২০১৯-০৫-১৮) এর পরে পড়া তারিখগুলো:
mysql> SELECT ArrivalDate FROM DemoTable WHERE ArrivalDate > DATE_SUB(CURDATE(), INTERVAL 3 WEEK);
আউটপুট:
+---------------------+ | ArrivalDate | +---------------------+ | 2019-06-08 00:00:00 | | 2019-05-20 00:00:00 | +---------------------+
ব্যাখ্যা: DATE_SUB(CURDATE(), INTERVAL 3 WEEK) বর্তমান তারিখ থেকে ২১ দিন বিয়োগ করে। CURDATE() শুধু তারিখ দেয় (টাইম নয়), তাই DATETIME কলামের সাথে তুলনা করলে টাইম অংশ ০০:০০:০০ ধরা হয়।
বিকল্প: WHERE ArrivalDate > CURDATE() - INTERVAL 3 WEEK (MySQL-এ সরাসরি অ্যারিথমেটিক সমর্থিত)।