STR_TO_DATE() দিয়ে VARCHAR ডেট পার্স করেই WHERE ক্লজে ফিল্টার
MySQL-এ তারিখ যদি VARCHAR-এ 'DD/MM/YYYY' ফরম্যাটে থাকে, তবে STR_TO_DATE() দিয়ে সেটিকে ডেট অবজেক্টে রূপান্তর করে তুলনা করা যায়।
টেবিল ও ডেটা (DD/MM/YYYY)
mysql> CREATE TABLE DemoTable (DueDate VARCHAR(100));
mysql> INSERT INTO DemoTable VALUES('21/10/2018'), ('18/08/2019'), ('01/12/2012'), ('31/01/2016');
সব রেকর্ড
+------------+ | DueDate | +------------+ | 21/10/2018 | | 18/08/2019 | | 01/12/2012 | | 31/01/2016 | +------------+
STR_TO_DATE() দিয়ে ফিল্টার (2010-01-31 এর পরের তারিখ)
mysql> SELECT * FROM DemoTable WHERE STR_TO_DATE(DueDate, '%d/%m/%Y') > '2010-01-31';
+------------+ | DueDate | +------------+ | 21/10/2018 | | 18/08/2019 | | 01/12/2012 | | 31/01/2016 | +------------+
ফরম্যাট স্পেসিফায়ার
%d— দিন (০১-৩১)%m— মাস (০১-১২)%Y— ৪ ডিজিট বছর%d/%m/%Y— 'DD/MM/YYYY' ফরম্যাট ম্যাচ করে।
পারফরম্যান্স নোট
STR_TO_DATEপ্রতি রো কল হয়, ইনডেক্স ব্যবহার হয় না (ফুল স্ক্যান)।- বড় টেবিলে ডেট টাইপে কনভার্ট করুন বা জেনারেটেড কলাম/ফাংশনাল ইনডেক্স (MySQL 8.0+) ব্যবহার করুন।