আজ থেকে ৭ দিন আগ পর্যন্ত তারিখ পেতে NOW() - INTERVAL 7 DAY ব্যবহার করুন:
SELECT * FROM yourTableName WHERE DATE(yourColumnName) > (NOW() - INTERVAL 7 DAY);
ধরে নিচ্ছি আজকের তারিখ '2019-06-02'। প্রথমে একটি টেবিল তৈরি করি:
mysql> CREATE TABLE DemoTable (LoginDate DATE);
রেকর্ড যোগ করি:
mysql> INSERT INTO DemoTable VALUES('2018-03-21');
mysql> INSERT INTO DemoTable VALUES('2019-05-22');
mysql> INSERT INTO DemoTable VALUES('2019-05-27');
mysql> INSERT INTO DemoTable VALUES('2019-06-01');
সকল রেকর্ড দেখতে:
mysql> SELECT * FROM DemoTable;
আউটপুট:
+------------+ | LoginDate | +------------+ | 2018-03-21 | | 2019-05-22 | | 2019-05-27 | | 2019-06-01 | +------------+
আজ থেকে ৭ দিন আগ পর্যন্ত (২০১৯-০৫-২৬ থেকে ২০১৯-০৬-০২) তারিখ ফিল্টার:
mysql> SELECT * FROM DemoTable WHERE DATE(LoginDate) > (NOW() - INTERVAL 7 DAY);
আউটপুট:
+------------+ | LoginDate | +------------+ | 2019-05-27 | | 2019-06-01 | +------------+
ব্যাখ্যা: NOW() বর্তমান ডেট-টাইম দেয়। INTERVAL 7 DAY বিয়োগ করলে ৭ দিন আগের সময় পাওয়া যায়। DATE(LoginDate) দিয়ে শুধু তারিখ অংশ তুলনা করা হয়েছে (টাইমSTAMP হলে সময় অংশ বাদ দেয়)।
বিকল্প: WHERE LoginDate >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) — এটি ইনডেক্স ব্যবহার করতে পারে (SARGable)।