mysql में स्ट्रिंग को डेट में कैसे बदलें?


149

मेरे पास एक stringकॉलम है जो एक के रूप में कार्य करता है dateऔर मैं इसे एक के रूप में चुनना चाहता हूं date

क्या यह संभव है?

मेरा नमूना डेटा प्रारूप होगा; month/day/year->12/31/2011

जवाबों:


258

जैसा कि MySQL में बताया गया था कि डेट फ़ील्ड के साथ डेट टेक्स्ट के साथ एक स्ट्रिंग कॉलम का उपयोग करना , आप कर सकते हैं

SELECT  STR_TO_DATE(yourdatefield, '%m/%d/%Y')
FROM    yourtable

आप WHEREक्लॉज़ में इन डेट स्ट्रिंग्स को भी हैंडल कर सकते हैं। उदाहरण के लिए

SELECT whatever
  FROM yourtable
 WHERE STR_TO_DATE(yourdatefield, '%m/%d/%Y') > CURDATE() - INTERVAL 7 DAY

आप इस तरह से सभी प्रकार की तारीख / समय को संभाल सकते हैं। कृपया फ़ंक्शन के प्रारूप प्रारूपDATE_FORMAT() को देखें कि आप दूसरे पैरामीटर में क्या डाल सकते हैं STR_TO_DATE()


6
मुझे लगता है कि यह DAYS के बजाय INTERVAL 7 DAY होना चाहिए
Feras Odeh

1
मेरे पास "dd-mmm-yyyy" प्रारूप जैसा एक चार कॉलम है। मैं "dd-mm-yyyy" प्रारूप में कैसे क्वेरी करूं?
अधिकतम

51
STR_TO_DATE('12/31/2011', '%m/%d/%Y')

दिनांक को 31/11/1015 की तरह DD / MM / YYYY प्रारूप में संग्रहीत किया जाता है?
विपुल हादिया

2
@VipulHadiya दिनांक स्वरूप स्ट्रिंग को %d/%m/%Yपसंद करने के लिए बदलें ताकि STR_TO_DATE('31/11/1015', '%d/%m/%Y')ध्यान रखें कि आउटपुट डेटा प्रकार के YYYY-MM-DDरूप में प्रारूप में होगा DATE
fyrye

1
कोड-केवल उत्तर StackOverflow पर निम्न-मान हैं। कृपया इस सही उत्तर को सुधारें।
मिकमैकुसा

11

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
MySQL में अधिक फ़ंक्शंस को संदर्भित करने के लिए उपरोक्त पृष्ठ का उपयोग करें

SELECT  STR_TO_DATE(StringColumn, '%d-%b-%y')
FROM    table

उदाहरण के लिए आउटपुट प्राप्त करने के लिए नीचे क्वेरी का उपयोग करें

SELECT STR_TO_DATE('23-feb-14', '%d-%b-%y') FROM table

स्ट्रिंग प्रारूप के लिए नीचे दिए गए लिंक का उपयोग करें

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format


10

यहाँ एक और दो उदाहरण हैं।

दिन, महीने और वर्ष का उत्पादन करने के लिए, आप इसका उपयोग कर सकते हैं:

select STR_TO_DATE('14/02/2015', '%d/%m/%Y');

जो पैदा करता है:

2015-02-14

समय का उत्पादन करने के लिए, आप इसका उपयोग कर सकते हैं:

select STR_TO_DATE('14/02/2017 23:38:12', '%d/%m/%Y %T');

जो पैदा करता है:

2017-02-14 23:38:12

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.