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

MySQL में STR_TO_DATE() का उपयोग करके दिनांक स्ट्रिंग्स की तुलना करना

MySQL में गैर-मानक प्रारूप (जैसे DD.MM.YYYY) में संग्रहीत दिनांक स्ट्रिंग्स की तुलना करने के लिए STR_TO_DATE() फ़ंक्शन का उपयोग करके उन्हें मानक DATE प्रकार में परिवर्तित करें।

सिंटैक्स

STR_TO_DATE(date_string, format_mask)

सामान्य प्रारूप मास्क

प्रारूपविवरणउदाहरण
%dदिन (01-31)01, 15, 31
%mमहीना (01-12)01, 12
%Y4-अंकीय वर्ष2024
%y2-अंकीय वर्ष24
%Hघंटा (00-23)14
%iमिनट (00-59)30
%sसेकंड (00-59)45

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

1. टेबल बनाएं और डेटा डालें (DD.MM.YYYY प्रारूप)

mysql> CREATE TABLE DemoTable712 (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ArrivalDate VARCHAR(100)
);
Query OK, 0 rows affected (0.65 sec)

mysql> INSERT INTO DemoTable712 (ArrivalDate) VALUES 
('10.01.2019'), ('11.12.2018'), ('01.11.2017'), ('20.06.2016');
Query OK, 4 rows affected (0.15 sec)

2. सभी रिकॉर्ड्स देखें

mysql> SELECT * FROM DemoTable712;
+----+-------------+
| Id | ArrivalDate |
+----+-------------+
| 1  | 10.01.2019  |
| 2  | 11.12.2018  |
| 3  | 01.11.2017  |
| 4  | 20.06.2016  |
+----+-------------+
4 rows in set (0.00 sec)

3. STR_TO_DATE के साथ तुलना करें

mysql> SELECT * FROM DemoTable712 
WHERE STR_TO_DATE(ArrivalDate, '%d.%m.%Y') = '2017-11-01';
+----+-------------+
| Id | ArrivalDate |
+----+-------------+
| 3  | 01.11.2017  |
+----+-------------+
1 row in set (0.00 sec)

अन्य तुलना उदाहरण

तिथि सीमा

SELECT * FROM DemoTable712 
WHERE STR_TO_DATE(ArrivalDate, '%d.%m.%Y') 
BETWEEN '2018-01-01' AND '2018-12-31';

क्रमबद्ध करना

SELECT * FROM DemoTable712 
ORDER BY STR_TO_DATE(ArrivalDate, '%d.%m.%Y');

वर्तमान तिथि से तुलना

SELECT * FROM DemoTable712 
WHERE STR_TO_DATE(ArrivalDate, '%d.%m.%Y') >= CURDATE();

सामान्य दिनांक प्रारूप और उनके मास्क

स्ट्रिंग प्रारूपमास्कउदाहरण
DD/MM/YYYY%d/%m/%Y31/12/2024
MM/DD/YYYY%m/%d/%Y12/31/2024
YYYY-MM-DD%Y-%m-%d2024-12-31
DD-MM-YYYY HH:MM:SS%d-%m-%Y %H:%i:%s31-12-2024 14:30:45
Mon DD, YYYY%b %d, %YDec 31, 2024

प्रदर्शन नोट

WHERE क्लॉज में STR_TO_DATE() का उपयोग इंडेक्स उपयोग को रोकता है। बेहतर प्रदर्शन के लिए:

  1. दिनांक को मूल DATE/DATETIME कॉलम में संग्रहीत करें
  2. या एक जनरेटेड कॉलम जोड़ें: parsed_date DATE AS (STR_TO_DATE(ArrivalDate, '%d.%m.%Y')) STORED
  3. फिर parsed_date पर इंडेक्स बनाएं
  1. - MySQL में UK दिनांक प्रारूप (DD/MM/YYYY) को MySQL DATE में परिवर्तित करना

    UK दिनांक प्रारूप (दिन/महीना/वर्ष - DD/MM/YYYY) को MySQL मानक DATE प्रारूप (YYYY-MM-DD) में परिवर्तित करने के लिए STR_TO_DATE() फ़ंक्शन का उपयोग करें। सिंटैक्स SELECT STR_TO_DATE(date_column, %d/%m/%Y) FROM table_name; प्रारूप स्पेसिफायर्स स्पेसिफायरअर्थउदाहरण %dदिन (01-31)31 %mमहीना (01-12)12 %Y

  1. - MySQL में तुलना करें जब एडमिशन तारीख वर्तमान तारीख से कम हो

    VARCHAR तारीख कॉलम की तुलना CURDATE() से करने के लिए STR_TO_DATE() का उपयोग करके इसे DATE प्रकार में बदलें। टेबल बनाना CREATE TABLE DemoTable (AdmissionDate VARCHAR(50)); Query OK, 0 rows affected (0.63 sec) नोट: मान लें वर्तमान तारीख 14-Sep-2019 है। डेटा डालना INSERT INTO DemoTable VALUES(15-S

  1. - Python में डेट स्ट्रिंग्स की तुलना कैसे करें?

    Python डेट इम्प्लीमेंटेशन्स सभी तुलना ऑपरेटर्स को सपोर्ट करती हैं। इसलिए, यदि आप डेट ऑब्जेक्ट्स बनाने और संभालने के लिए datetime मॉड्यूल का उपयोग कर रहे हैं, तो आप बस डेट्स पर , =, आदि ऑपरेटर्स का उपयोग कर सकते हैं। इससे डेट्स की तुलना और वैलिडेशन के लिए जांच करना बहुत आसान हो जाता है। उदाहरण from d