MySQL-এ ইউনিক্স টাইমস্ট্যাম্প (ইন্টিজার) সংরক্ষিত কলাম থেকে ১ দিনের বেশি পুরনো রেকর্ডগুলো বের করতে FROM_UNIXTIME() এবং NOW() ফাংশন ব্যবহার করা হয়।
উদাহরণ
টেবিল তৈরি (ইন্ট কলাম):
CREATE TABLE demo75 (due_date INT(11));
ডেটা ইনসার্ট (UNIX_TIMESTAMP দিয়ে):
INSERT INTO demo75 VALUES (UNIX_TIMESTAMP('2020-01-10'));
INSERT INTO demo75 VALUES (UNIX_TIMESTAMP('2020-11-19'));
INSERT INTO demo75 VALUES (UNIX_TIMESTAMP('2020-12-18'));
INSERT INTO demo75 VALUES (UNIX_TIMESTAMP('2020-11-10'));
টেবিলের ডেটা (ইন্ট টাইমস্ট্যাম্প):
+------------+ | due_date | +------------+ | 1578594600 | | 1605724200 | | 1608229800 | | 1604946600 | +------------+
কোয়েরি
বর্তমান সময় (NOW) থেকে ১ দিন পুরনো বা তার আগের রেকর্ড:
SELECT * FROM demo75 WHERE FROM_UNIXTIME(due_date) < NOW() - INTERVAL 1 DAY;
আউটপুট (ধরি NOW = 2020-12-19)
+------------+ | due_date | +------------+ | 1578594600 | -- 2020-01-10 | 1604946600 | -- 2020-11-10 +------------+
ব্যাখ্যা:
FROM_UNIXTIME(due_date)- ইন্ট টাইমস্ট্যাম্পকে DATETIME-এ কনভার্ট করে।NOW()- সার্ভারের বর্তমান ডেট-টাইম।INTERVAL 1 DAY- ১ দিন বিয়োগ।- তুলনা: কনভার্টেড ডেট < (NOW - 1 day)।
নোট: টাইমজোন সেটিংস অনুযায়ী ফলাফল ভিন্ন হতে পারে। UTC-তে রাখা ভালো। ইনডেক্স ব্যবহার করতে চাইলে কলামটিকে DATETIME/TIMESTAMP টাইপে রাখুন এবং WHERE due_date < UNIX_TIMESTAMP(NOW() - INTERVAL 1 DAY) করুন (ফাংশন কলামে নয়, ভ্যালুতে)।