VARCHAR कॉलम में संग्रहीत तिथियों को क्वेरी करना
MySQL में अक्सर तिथियाँ VARCHAR कॉलम में स्टोर होती हैं। ऐसी स्थिति में तिथि तुलना के लिए STR_TO_DATE() फ़ंक्शन का उपयोग करना पड़ता है।
उदाहरण: तालिका बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable1364 (
-> ShippingDate VARCHAR(100)
-> );
Query OK, 0 rows affected (0.87 sec)
mysql> INSERT INTO DemoTable1364 VALUES('01-09-2019 12:34:55');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable1364 VALUES('01-07-2018 17:10:00');
Query OK, 1 row affected (0.37 sec)
mysql> INSERT INTO DemoTable1364 VALUES('24-09-2019 10:31:22');
Query OK, 1 row affected (0.24 sec)
mysql> INSERT INTO DemoTable1364 VALUES('20-09-2018 13:00:00');
Query OK, 1 row affected (0.13 sec)
सभी रिकॉर्ड देखना
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 |
+---------------------+
4 rows in set (0.00 sec)
विशिष्ट तिथि के बाद के रिकॉर्ड खोजने का क्वेरी
STR_TO_DATE() का उपयोग करके VARCHAR को 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 |
+---------------------+
1 row in set (0.00 sec)
नोट: फॉर्मेट स्पेसिफायर (%d-%m-%Y आदि) आपके डेटा के वास्तविक फॉर्मेट से मेल खाने चाहिए।