MySQL-এ DATE_SUB() এবং NOW() ব্যবহার করে সাম্প্রতিক রেকর্ড খুঁজে বের করা
বর্তমান সময় (NOW()) থেকে নির্দিষ্ট সময় পরিমাণ (যেমন ১০ মিনিট) পেছনে যাওয়া রেকর্ডগুলো খুঁজে বের করতে DATE_SUB() ফাংশন ব্যবহার করা হয়।
সিনট্যাক্স
SELECT * FROM yourTableName WHERE yourDateTimeColumn >= DATE_SUB(NOW(), INTERVAL 10 MINUTE);
উদাহরণ
টেবিল তৈরি
mysql> CREATE TABLE users (
-> Id INT NOT NULL AUTO_INCREMENT,
-> UserName VARCHAR(20),
-> UserLastseen DATETIME,
-> PRIMARY KEY(Id)
-> );
ডেটা ইনসার্ট
mysql> INSERT INTO users(UserName, UserLastseen) VALUES('Larry', '2019-01-15 02:45:00');
mysql> INSERT INTO users(UserName, UserLastseen) VALUES('Sam', NOW());
mysql> INSERT INTO users(UserName, UserLastseen) VALUES('Mike', '2019-01-15 02:30:00');
mysql> INSERT INTO users(UserName, UserLastseen) VALUES('Bob', '2019-01-15 15:02:00');
mysql> INSERT INTO users(UserName, UserLastseen) VALUES('David', '2019-01-15 14:55:00');
সকল রেকর্ড দেখানো
mysql> SELECT * FROM users;
আউটপুট (ধরি বর্তমান সময় ২০১৯-০১-১৫ ১৫:০১:৫২)
+----+----------+---------------------+ | Id | UserName | UserLastseen | +----+----------+---------------------+ | 1 | Larry | 2019-01-15 02:45:00 | | 2 | Sam | 2019-01-15 15:01:52 | | 3 | Mike | 2019-01-15 02:30:00 | | 4 | Bob | 2019-01-15 15:02:00 | | 5 | David | 2019-01-15 14:55:00 | +----+----------+---------------------+
গত ১০ মিনিটের রেকর্ড খুঁজে বের করা
mysql> SELECT * FROM users WHERE UserLastseen >= DATE_SUB(NOW(), INTERVAL 10 MINUTE);
ফলাফল
+----+----------+---------------------+ | Id | UserName | UserLastseen | +----+----------+---------------------+ | 2 | Sam | 2019-01-15 15:01:52 | | 4 | Bob | 2019-01-15 15:02:00 | | 5 | David | 2019-01-15 14:55:00 | +----+----------+---------------------+
ল্যাঙ্কি, মাইক বা ল্যারি ১০ মিনিটের বেশি পুরনো, তাই তারা ফলাফলে আসেনি।