MySQL में स्ट्रिंग फॉर्मेट में स्टोर डेटाटाइम से केवल तारीख निकालने के लिए STR_TO_DATE() और DATE_FORMAT() का संयोजन उपयोग करें।
टेबल निर्माण (स्ट्रिंग कॉलम)
mysql> CREATE TABLE DemoTable (
ShippingDate VARCHAR(200)
);
डेटा डालना (मिश्रित फॉर्मेट)
mysql> INSERT INTO DemoTable VALUES('04:58 PM 10/31/2018');
mysql> INSERT INTO DemoTable VALUES('02:30 AM 01/01/2019');
mysql> INSERT INTO DemoTable VALUES('12:01 AM 05/03/2019');
सभी रिकॉर्ड देखें
mysql> SELECT * FROM DemoTable;
+---------------------+ | ShippingDate | +---------------------+ | 04:58 PM 10/31/2018 | | 02:30 AM 01/01/2019 | | 12:01 AM 05/03/2019 | +---------------------+ 3 rows in set (0.00 sec)
केवल तारीख निकालने की क्वेरी (MM/DD/YYYY फॉर्मेट)
mysql> SELECT DATE_FORMAT(
STR_TO_DATE(ShippingDate, '%h:%i %p %m/%d/%Y'),
'%m/%d/%Y'
) FROM DemoTable;
परिणाम (केवल तारीख)
+-------------------------------------------------------------------------+ | DATE_FORMAT(STR_TO_DATE(ShippingDate, '%h:%i %p %m/%d/%Y'), '%m/%d/%Y') | +-------------------------------------------------------------------------+ | 10/31/2018 | | 01/01/2019 | | 05/03/2019 | +-------------------------------------------------------------------------+ 3 rows in set (0.00 sec)
व्याख्या:
STR_TO_DATE()स्ट्रिंग को डेटा ऑब्जेक्ट में पार्स करता हैDATE_FORMAT()उसे मनचाहे फॉर्मेट में आउटपुट करता है%h:%i %p %m/%d/%Y- इनपुट फॉर्मेट (12-घंटे, AM/PM, MM/DD/YYYY)
बेहतर तरीका: यदि कॉलम DATETIME टाइप का है, तो सीधे DATE(column) या DATE_FORMAT(column, '%Y-%m-%d') उपयोग करें।