MySQL-এ বর্তমান তারিখ থেকে এক সপ্তাহ (৭ দিন) বেশি পুরনো রেকর্ড বের করতে DATEDIFF() ফাংশন ব্যবহার করা হয়।
বর্তমান তারিখ দেখানো
mysql> SELECT NOW(); +---------------------+ | NOW() | +---------------------+ | 2019-06-09 19:15:56 | +---------------------+ 1 row in set (0.00 sec)
টেবিল তৈরি এবং ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (
-> ShippingDate DATETIME
-> );
Query OK, 0 rows affected (0.66 sec)
mysql> INSERT INTO DemoTable VALUES('2019-06-01');
mysql> INSERT INTO DemoTable VALUES('2019-06-02');
mysql> INSERT INTO DemoTable VALUES('2019-06-14');
mysql> INSERT INTO DemoTable VALUES('2019-05-21');
সব রেকর্ড দেখানো
mysql> SELECT * FROM DemoTable;
আউটপুট
+---------------------+ | ShippingDate | +---------------------+ | 2019-06-01 00:00:00 | | 2019-06-02 00:00:00 | | 2019-06-14 00:00:00 | | 2019-05-21 00:00:00 | +---------------------+ 4 rows in set (0.00 sec)
৭ দিনের চেয়ে পুরনো রেকর্ড বের করা
বর্তমান তারিখ ২০১৯-০৬-০৯ হলে, ৭ দিন আগে হয় ২০১৯-০৬-০২। তার আগের তারিখগুলো বের করতে:
mysql> SELECT * FROM DemoTable WHERE DATEDIFF(NOW(), ShippingDate) > 7;
আউটপুট
+---------------------+ | ShippingDate | +---------------------+ | 2019-06-01 00:00:00 | | 2019-05-21 00:00:00 | +---------------------+ 2 rows in set (0.00 sec)
ব্যাখ্যা: DATEDIFF(NOW(), ShippingDate) বর্তমান তারিখ এবং ShippingDate-এর পার্থক্য (দিনে) রিটার্ন করে। যদি পার্থক্য ৭-এর চেয়ে বেশি হয়, তবে রোটি নির্বাচিত হয়।
বিকল্প পদ্ধতি: WHERE ShippingDate < DATE_SUB(NOW(), INTERVAL 7 DAY) — এটি ইনডেক্স-বান্ধব (sargable) হয়ে পারফরম্যান্সে ভালো।