কম্পিউটার টিউটোরিয়াল

MySQL-এ FROM_UNIXTIME ও NOW ব্যবহার করে ১ দিন পুরনো টাইমস্ট্যাম্প রো ফেচ করা

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) করুন (ফাংশন কলামে নয়, ভ্যালুতে)।

  1. MySQL-এ গত এক ঘন্টায় যুক্ত রেকর্ডগুলো খোঁজা (DATE_SUB, NOW)

  2. MySQL-এ ১ সপ্তাহের পুরনো ডেটাইম রেকর্ড পান

  3. MySQL-এ IN ক্লজ দিয়ে একাধিক রো ডিলিট করুন

  4. PHP MySQL-এ টাইমস্ট্যাম্প থেকে দিন/মাস/বছর বের করা