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

MySQL में VARCHAR तिथियों की सूची से अधिकतम तिथि प्राप्त करना

VARCHAR कॉलम में संग्रहीत तिथियों से अधिकतम तिथि निकालना

जब तिथियां VARCHAR कॉलम में टेक्स्ट फॉर्मेट में संग्रहीत होती हैं (जैसे 'Sunday, 11 August 2019'), तो उन्हें तिथि के रूप में तुलना करने के लिए STR_TO_DATE() फ़ंक्शन का उपयोग करना पड़ता है।

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

तालिका बनाना

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

टेक्स्ट फॉर्मेट में तिथि डालना

mysql> INSERT INTO DemoTable VALUES('Sunday, 11 August 2019');
mysql> INSERT INTO DemoTable VALUES('Friday, 18 October 2019');
mysql> INSERT INTO DemoTable VALUES('Thursday, 18 July 2019');

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

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-------------------------+
| AdmissionDate           |
+-------------------------+
| Sunday, 11 August 2019  |
| Friday, 18 October 2019 |
| Thursday, 18 July 2019  |
+-------------------------+

अधिकतम तिथि प्राप्त करने के लिए क्वेरी

mysql> SELECT MAX(STR_TO_DATE(AdmissionDate, '%W, %d %M %Y')) 
AS MaxDate FROM DemoTable;

आउटपुट:

+------------+
| MaxDate    |
+------------+
| 2019-10-18 |
+------------+

फॉर्मेट स्पेसिफायर्स की व्याख्या

  • %W - सप्ताह का पूरा नाम (Sunday, Monday, आदि)
  • %d - महीने का दिन (01-31)
  • %M - महीने का पूरा नाम (January, February, आदि)
  • %Y - 4 अंकों वाला वर्ष

महत्वपूर्ण: STR_TO_DATE() स्ट्रिंग को DATE मान में परिवर्तित करता है, जिससे MAX() सही ढंग से काम कर सके।

  1. - MySQL में किसी दिनांक का अंतिम सेकंड (23:59:59) कैसे प्राप्त करें?

    MySQL में DATE() और INTERVAL अंकगणित का उपयोग करके किसी दिनांक का अंतिम सेकंड (दिन का अंत: 23:59:59) प्राप्त किया जा सकता है। तर्क DATE(datetime) - समय भाग हटाकर केवल दिनांक (00:00:00) + INTERVAL 1 DAY - अगले दिन की शुरुआत - INTERVAL 1 SECOND - 1 सेकंड घटाकर दिन का अंत उदाहरण तालिका बनाएं: mysql

  1. - MySQL में YEAR() से विशिष्ट वर्ष की शुरुआत और अंत तिथि प्राप्त करें

    दो डेट कॉलम (शुरुआत, अंत) वाली टेबल से किसी विशिष्ट वर्ष में आने वाली पंक्तियाँ प्राप्त करने के लिए YEAR() फ़ंक्शन का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1843 ( StartDate DATE, EndDate DATE ); डेटा डालें mysql> INSERT INTO DemoTable1843 VALUES(2019-01-21, 2019-10-12);

  1. - MySQL में VARCHAR कॉलम से अधिकतम मान कैसे प्राप्त करें

    समस्या VARCHAR कॉलम पर MAX() सीधे काम नहीं करता क्योंकि स्ट्रिंग तुलना वर्णानुक्रम में होती है। समाधान CAST() का उपयोग करके VARCHAR को UNSIGNED INTEGER में बदलें फिर MAX() लागू करें। उदाहरण INSERT INTO DemoTable2030 VALUES (8), (1), (10001), (901); क्वेरी SELECT MAX(CAST(Value AS UNSIGNED)) FRO