MySQL-এ যদি তারিখ VARCHAR টাইপে সংরক্ষিত থাকে, তবে তারিখ তুলনার জন্য STR_TO_DATE() ফাংশন ব্যবহার করে সেটিকে সঠিক DATE/DATETIME ফরম্যাটে কনভার্ট করতে হয়।
টেবিল ও ডেটা (VARCHAR এ তারিখ)
mysql> create table DemoTable1364 ( ShippingDate varchar(100) );
mysql> insert into DemoTable1364 values
('01-09-2019 12:34:55'),
('01-07-2018 17:10:00'),
('24-09-2019 10:31:22'),
('20-09-2018 13:00:00');
সব রেকর্ড
mysql> select * from DemoTable1364; +---------------------+ | ShippingDate | +---------------------+ | 01-09-2019 12:34:55 | | 01-07-2018 17:10:00 | | 24-09-2019 10:31:22 | | 20-09-2018 13:00:00 | +---------------------+
STR_TO_DATE দিয়ে কনভার্ট করে তুলনা (২০১৯-০৯-২১ ১০:৩১:২০ এর পরের রেকর্ড)
mysql> select * from DemoTable1364
-> where str_to_date(ShippingDate,'%d-%m-%Y %H:%i:%s') > str_to_date('2019-09-21 10:31:20', '%Y-%m-%d %H:%i:%s');
+---------------------+
| ShippingDate |
+---------------------+
| 24-09-2019 10:31:22 |
+---------------------+
ব্যাখ্যা: STR_TO_DATE(str, format) স্ট্রিংকে ফরম্যাট অনুযায়ী ডেটাইমে কনভার্ট করে। দুটি ভিন্ন ফরম্যাটের স্ট্রিং (dd-mm-yyyy vs yyyy-mm-dd) একসাথে তুলনা করার জন্য দুটোকেই কনভার্ট করা লাগে। ইনডেক্স কাজ না করবে — বড় ডেটাসেটে কম্পিউটেড কোলাম বা জেনারেটেড কোলাম ব্যবহার করুন।