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

MySQL में VARCHAR तिथियों पर STR_TO_DATE के साथ SELECT करना

MySQL में STR_TO_DATE() के साथ VARCHAR तिथियों पर तिथि तुलना करना

जब तिथियां VARCHAR कॉलम में गैर-मानक फॉर्मेट में संग्रहीत होती हैं, तो STR_TO_DATE() का उपयोग WHERE क्लॉज में करके उन्हें तिथि के रूप में तुलना किया जा सकता है।

व्यावहारिक उदाहरण

तालिका बनाना

mysql> CREATE TABLE DemoTable (
    DueDate VARCHAR(100)
);

DD/MM/YYYY फॉर्मेट में तिथि डालना

mysql> INSERT INTO DemoTable VALUES('21/10/2018');
mysql> INSERT INTO DemoTable VALUES('18/08/2019');
mysql> INSERT INTO DemoTable VALUES('01/12/2012');
mysql> INSERT INTO DemoTable VALUES('31/01/2016');

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+------------+
| DueDate    |
+------------+
| 21/10/2018 |
| 18/08/2019 |
| 01/12/2012 |
| 31/01/2016 |
+------------+

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दिन (01-31)
%mमहीना (01-12)
%Y4 अंकों वाला वर्ष
%Mमहीने का पूरा नाम
%Wसप्ताह का पूरा नाम

प्रदर्शन विचार

  • STR_TO_DATE() हर पंक्ति के लिए चलता है → पूर्ण तालिका स्कैन
  • बड़े तालिकाओं के लिए, एक DATE कॉलम जोड़ें और उसे इंडेक्स करें
  • या जेनरेटेड कॉलम का उपयोग करें (MySQL 5.7+):

            
  1. - MySQL तालिका में प्रत्येक मान के लिए अधिकतम (MAX) कैसे चुनें?

    MySQL में GROUP BY और MAX() का उपयोग करके प्रत्येक समूह (जैसे देश) के लिए अधिकतम मान (जैसे जनसंख्या) प्राप्त किया जा सकता है। उदाहरण देश जनसंख्या तालिका: mysql> CREATE TABLE DemoTable (CountryName VARCHAR(20), Population INT); mysql> INSERT INTO DemoTable VALUES (US, 560), (UK, 10090), (UK, 8

  1. - MySQL में टेबल में मौजूद न होने वाले मानों को कैसे क्वेरी करें?

    MySQL में किसी टेबल में मौजूद नहीं होने वाले मानों को खोजने के लिए, UNION ALL के साथ WHERE NOT EXISTS या NOT IN का उपयोग करें। यह गैप विश्लेषण या मिसिंग सीक्वेंस खोजने के लिए उपयोगी है। उदाहरण: मिसिंग ऑटो-इन्क्रीमेंट मान खोजना ऑटो-इन्क्रीमेंट टेबल बनाएं: mysql> CREATE TABLE DemoTable1918 (

  1. - MySQL में AUTO_INCREMENT टेबल में INSERT INTO SELECT कैसे करें?

    MySQL में AUTO_INCREMENT प्राइमरी की वाली टेबल में INSERT INTO ... SELECT का उपयोग करते समय, आप स्पष्ट रूप से ID मान प्रदान कर सकते हैं या ऑटो-जनरेट होने दे सकते हैं। दोनों दृष्टिकोण वैध हैं लेकिन अलग व्यवहार करते हैं। उदाहरण: स्पष्ट ID के साथ INSERT INTO SELECT ऑटो-इन्क्रीमेंट टेबल बनाएं: mysql&