Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में STR_TO_DATE को कॉलम के रूप में उपयोग करें लेकिन कॉलम नहीं मिला? HAVING क्लॉज़ का उपयोग

आप 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+) का उपयोग करें।

  1. - MySQL में SUBSTRING_INDEX() का उपयोग करके कॉलम कैसे विभाजित करें?

    MySQL में SUBSTRING_INDEX() और LOCATE() फ़ंक्शन का उपयोग करके डिलिमिटर (जैसे अंडरस्कोर) के आधार पर कॉलम को भागों में विभाजित किया जा सकता है। सिंटैक्स 0: बाएं से count भाग -- count < 0: दाएं से |count| भाग उदाहरण: पहला भाग प्राप्त करें (पहले _ से पहले) mysql> CREATE TABLE DemoTable (Name VARCH

  1. - MySQL में NOT NULL बाधा से कॉलम को खाली न रहने दें

    कॉलम परिभाषा में NOT NULL बाधा जोड़कर उस कॉलम में NULL मान डालने से रोकें। टेबल बनाएं mysql> CREATE TABLE DemoTable1895 ( Id INT NOT NULL, FirstName VARCHAR(20), LastName VARCHAR(20) NOT NULL ); डेटा डालें (त्रुटि प्रदर्शन) mysql> INSERT INTO DemoTable1895 VALUES(100, John, Smith

  1. - MySQL में ALTER TABLE का उपयोग करके मौजूदा कॉलम पर NOT NULL विशेषता सेट करें

    MySQL में मौजूदा कॉलम को NOT NULL बनाना मौजूदा कॉलम पर NOT NULL प्रतिबंध जोड़ने के लिए, ALTER TABLE ... MODIFY स्टेटमेंट का उपयोग करें जिसमें कॉलम परिभाषा में NOT NULL शामिल हो। टेबल बनाना ); Query OK, 0 rows affected (0.00 sec) UserName पर NOT NULL प्रतिबंध जोड़ना MODIFY UserName VARCHAR(20) NO