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 উভয় প্রান্তই ইনক্লুসিভ হয়ে সময়-সহ ডেটায় অনাকাঙ্ক্ষিত রো আনতে পারে।