आप HAVING क्लॉज़ का उपयोग कर सकते हैं।
टेबल बनाएं
mysql> create table DemoTable (
-> AdmissionDate varchar(100)
-> );
Query OK, 0 rows affected (0.55 sec)
रिकॉर्ड्स डालें
mysql> insert into DemoTable values('10/12/2017');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('01/11/2018');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('31/01/2019');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('09/06/2019');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('19/04/2019');
Query OK, 1 row affected (0.23 sec)
सभी रिकॉर्ड्स देखें
mysql> select * from DemoTable;
+---------------+ | AdmissionDate | +---------------+ | 10/12/2017 | | 01/11/2018 | | 31/01/2019 | | 09/06/2019 | | 19/04/2019 | +---------------+ 5 rows in set (0.00 sec)
STR_TO_DATE को कॉलम के रूप में उपयोग करने का क्वेरी
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 | +------------+ 3 rows in set (0.00 sec)
व्याख्या:
STR_TO_DATE(AdmissionDate, '%d/%m/%Y')- स्ट्रिंग को DATE में बदलेंAS newDate- उपनाम देंHAVING newDate >= '2019-01-01'- उपनाम का उपयोग करके फ़िल्टर करें- WHERE vs HAVING: WHERE उपनाम का उपयोग नहीं कर सकता (निष्पादन क्रम), HAVING कर सकता है
वैकल्पिक: सबक्वेरी या CTE (MySQL 8.0+) का उपयोग करें।