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

MySQL-এ টাইমস্ট্যাম্প ডেটা রেঞ্জ অনুযায়ী সিলেক্ট করা

MySQL-এ TIMESTAMP বা DATETIME কলাম থেকে নির্দিষ্ট ডেটা রেঞ্জের রেকর্ড বের করতে >= এবং < অপারেটর ব্যবহার করুন। এতে ইন্ডেক্স ব্যবহার হয় এবং পারফরম্যান্স ভালো থাকে।

সিনট্যাক্স (স্ট্যান্ডার্ড ডেট টাইপ)

SELECT * FROM `table` 
WHERE `datetime_col` >= 'start_date' 
  AND `datetime_col` < 'end_date_next_day';

উদাহরণ

CREATE TABLE `DateRange` (`DueTime` TIMESTAMP);
INSERT INTO `DateRange` VALUES
('2016-11-13'), ('2016-10-14'), ('2017-01-23'),
('2017-05-14'), ('2017-08-25'), ('2018-09-28'),
('2018-11-17'), ('2018-12-13'), ('2018-12-16');

রেঞ্জ কোয়েরি (২০১৭-০৫-১৪ থেকে ২০১৮-১২-১৬ পর্যন্ত)

SELECT * FROM `DateRange`
WHERE `DueTime` >= '2017-05-14' 
  AND `DueTime` < '2018-12-17';

ফলাফল: ৬টি রো (২০১৭-০৫-১৪ থেকে ২০১৮-১২-১৬ পর্যন্ত)।

ইউনিক্স টাইমস্ট্যাম্প (INTEGER) কলামের জন্য

SELECT * FROM `table`
WHERE `unix_col` >= UNIX_TIMESTAMP('2017-05-14')
  AND `unix_col` < UNIX_TIMESTAMP('2018-12-17');

সেরা অনুশীলন: BETWEEN এড়িয়ে >= AND < প্যাটার্ন ব্যবহার করুন, কারণ BETWEEN উভয় প্রান্তই ইনক্লুসিভ হয়ে সময়-সহ ডেটায় অনাকাঙ্ক্ষিত রো আনতে পারে।

  1. MySQL-এ DATE_SUB() ও NOW() দিয়ে নির্দিষ্ট সময়ের পরের টাইমস্ট্যাম্প রেকর্ড বের করা

  2. MySQL-এ STR_TO_DATE() এবং CURDATE() ব্যবহার করে বর্তমান তারিখের রেকর্ড খুঁজুন

  3. MySQL-এ SELECT কুয়েরি দিয়ে INSERT করা (INSERT ... SELECT)

  4. MySQL-এ GROUP BY এবং MIN() ব্যবহার করে টাইমস্ট্যাম্প থেকে সর্বপ্রাচীন তারিখ বের করা