SELECT লিস্টে তৈরি করা ক্যালকুলেটেড কালামে (যেমন STR_TO_DATE()) সরাসরি WHERE ক্লজ ব্যবহার করা যায় না। সেক্ষেত্রে HAVING ক্লজ ব্যবহার করতে হয়।
টেবিল তৈরি এবং ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (
-> AdmissionDate VARCHAR(100)
-> );
Query OK, 0 rows affected (0.55 sec)
mysql> INSERT INTO DemoTable VALUES('10/12/2017'), ('01/11/2018'), ('31/01/2019'), ('09/06/2019'), ('19/04/2019');
সকল রেকর্ড
+---------------+ | AdmissionDate | +---------------+ | 10/12/2017 | | 01/11/2018 | | 31/01/2019 | | 09/06/2019 | | 19/04/2019 | +---------------+
২০১৯-০১-০১ এর পরের তারিখগুলো বের করা
mysql> SELECT STR_TO_DATE(AdmissionDate, '%d/%m/%Y') AS newDate
-> FROM DemoTable
-> HAVING newDate >= '2019-01-01';
আউটপুট:
+------------+ | newDate | +------------+ | 2019-01-31 | | 2019-06-09 | | 2019-04-19 | +------------+
ব্যাখ্যা: WHERE এ অ্যালিয়াস বা এক্সপ্রেশন ব্যবহার করা যায় না (MySQL-এ কিছু এক্সেপশন ছাড়া)। HAVING গ্রুপিং ছাড়াও ফিল্টারের জন্য ব্যবহার করা যায়।