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

MySQL में DATE_FORMAT और STR_TO_DATE से 'mm-yyyy' फॉर्मेट में महीना-वर्ष कैसे निकालें?

MySQL में VARCHAR कॉलम में स्टोर तारीख (जैसे 'dd-mm-yyyy') से 'mm-yyyy' फॉर्मेट में महीना-वर्ष निकालने के लिए, STR_TO_DATE() से पार्स करें फिर DATE_FORMAT() से फॉर्मेट करें।

उदाहरण: ShippingDate से महीना-वर्ष निकालना

डेमो टेबल बनाएं (तारीख VARCHAR में):

mysql> CREATE TABLE DemoTable1931 (ShippingDate VARCHAR(40));

डेटा इन्सर्ट करें:

mysql> INSERT INTO DemoTable1931 VALUES
('10-11-2017'), ('31-01-2019'), ('02-02-2018'), ('10-06-2013');

क्वेरी:

mysql> SELECT DATE_FORMAT(STR_TO_DATE(ShippingDate, '%d-%m-%Y'), '%m-%Y')
FROM DemoTable1931;

आउटपुट:

+-----------------------------------------------------------+
| DATE_FORMAT(STR_TO_DATE(ShippingDate, '%d-%m-%Y'), '%m-%Y') |
+-----------------------------------------------------------+
| 11-2017                                                   |
| 01-2019                                                   |
| 02-2018                                                   |
| 06-2013                                                   |
+-----------------------------------------------------------+

फंक्शन व्याख्या

STR_TO_DATE(str, format)

  • स्ट्रिंग को फॉर्मेट स्ट्रिंग के अनुसार DATE/DATETIME में पार्स करता है
  • %d = दिन (01-31), %m = महीना (01-12), %Y = 4-अंकीय वर्ष
  • अमान्य तारीख के लिए NULL लौटाता है

DATE_FORMAT(date, format)

  • DATE/DATETIME को फॉर्मेट स्ट्रिंग के अनुसार स्ट्रिंग में फॉर्मेट करता है
  • %m = 2-अंकीय महीना (01-12), %Y = 4-अंकीय वर्ष
  • %m-%Y → '01-2019', '12-2023', आदि

सामान्य फॉर्मेट स्पेसिफायर

स्पेसिफायरअर्थउदाहरण
%mमहीना (01-12)01, 12
%cमहीना (1-12)1, 12
%Yवर्ष (4 अंक)2024
%yवर्ष (2 अंक)24
%dदिन (01-31)01, 31
%Mमहीना नामJanuary
%bसंक्षिप्त महीनाJan

सभी कॉलम के साथ चयन

SELECT *, 
       DATE_FORMAT(STR_TO_DATE(ShippingDate, '%d-%m-%Y'), '%m-%Y') AS month_year
FROM DemoTable1931;

बेहतर दृष्टिकोण: DATE कॉलम उपयोग करें

यदि संभव हो, तारीख को VARCHAR के बजाय DATE कॉलम में स्टोर करें:

-- तब सीधे:
SELECT DATE_FORMAT(ShippingDate, '%m-%Y') FROM table;

लाभ: इंडेक्स उपयोग, वैलिडेशन, बिल्ट-इन फंक्शन, स्टोरेज दक्षता।

सावधानी

अमान्य तारीख स्ट्रिंग (जैसे '31-02-2023') के लिए STR_TO_DATE NULL लौटाता है। डेटा क्लीनिंग के लिए पहले वैलिडेट करें:

SELECT ShippingDate 
FROM DemoTable1931 
WHERE STR_TO_DATE(ShippingDate, '%d-%m-%Y') IS NULL;
  1. PHP MySQL में टाइमस्टैम्प से दिन, महीना, वर्ष कैसे निकालें? PHP MySQL में टाइमस्टैम्प से दिन, महीना, वर्ष कैसे निकालें?

    PHP में date_parse() फ़ंक्शन का उपयोग PHP में टाइमस्टैम्प से दिन, महीना, वर्ष और अन्य घटक निकालने के लिए date_parse() फ़ंक्शन का उपयोग करें: print_r(date_parse(anyTimeStampValue)); PHP कोड उदाहरण $yourTimeStampValue = 2019-02-04 12:56:50; print_r(date_parse($yourTimeStampValue)); आउटपुट ) date_p

  1. - MySQL में MONTH() और DAY() का उपयोग करके वर्तमान दिनांक के दिन और महीने के साथ तिथि रिकॉर्ड्स की तुलना करना

    MySQL में दिन और महीने के आधार पर तिथि फ़िल्टरिंग वर्ष की परवाह किए बिना विशिष्ट दिन और महीने पर पड़ने वाली तिथियों को ढूंढने के लिए (जैसे वर्षगाँठ, जन्मदिन), MONTH() और DAY() फ़ंक्शन का उपयोग करके तिथि भागों की तुलना करें। उदाहरण: आज की तिथि से मेल खाने वाली वर्षगाँठ ढूंढना पहले एक वर्षगाँठ तिथि ट

  1. - MySQL में महीने और वर्ष की शुरुआत से वाउचर मूल्य का कुल योग गिनना

    परिचय MySQL में MONTH() और YEAR() फंक्शन्स का उपयोग करके तिथि से महीना और वर्ष निकालकर, वर्तमान महीने/वर्ष के रिकॉर्ड फ़िल्टर करके योग निकाला जा सकता है। उदाहरण: टेबल बनाना और डेटा डालना ); Query OK, 0 rows affected (1.40 sec) INSERT INTO DemoTable1562 VALUES(450, 2019-10-13); Query OK, 1 row af