आप STR_TO_DATE() का उपयोग करके वर्चर के रूप में संग्रहीत तिथियों के बीच खोज सकते हैं। वाक्य रचना इस प्रकार है -
अपनेTableName से *चुनें जहां STR_TO_DATE(LEFT(yourColumnName,LOCATE('',yourColumnName)),'%m/%d/%Y') 'yourDateValue1' और 'yourDateValue2' के बीच;
उपरोक्त वाक्य रचना को समझने के लिए, आइए एक तालिका बनाते हैं। तालिका बनाने की क्वेरी इस प्रकार है -
mysql> टेबल बनाएं SearchDateAsVarchar -> ( -> Id int NOT NULL AUTO_INCREMENT, -> ShippingDate varchar(100), -> PRIMARY KEY(Id) -> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.99 सेकंड)पूर्व>INSERT कमांड का उपयोग करके तालिका में कुछ रिकॉर्ड डालें। क्वेरी इस प्रकार है -
mysql> SearchDateAsVarchar (शिपिंगडेट) मान ('6/28/2011 9:58 AM') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.19 सेकंड) mysql> SearchDateAsVarchar (शिपिंगडेट) मान ('6/18) में डालें /2011 10:50:39 पूर्वाह्न'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.55 सेकंड) mysql> SearchDateAsVarchar (शिपिंग दिनांक) मान ('6/22/2011 11:45:40 पूर्वाह्न') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.18 सेकंड)चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है -
mysql> SearchDateAsVarchar से *चुनें;निम्न आउटपुट है -
+-----+-----------------------+| आईडी | शिपिंग तिथि |+----+-----------------------+| 1 | 6/28/2011 9:58 पूर्वाह्न || 2 | 6/18/2011 10:50:39 पूर्वाह्न || 3 | 6/22/2011 11:45:40 पूर्वाह्न |+----+---------------------------+3 पंक्तियाँ सेट में (0.00 सेकंड)यहाँ varchar के रूप में संग्रहीत तिथियों के बीच खोज करने की क्वेरी है -
mysql> सेलेक्ट करें *SearchDateAsVarchar से जहाँSTR_TO_DATE(LEFT(ShippingDate,LOCATE(' ',ShippingDate)),'%m/%d/%Y') BETWEEN'2011-06-20' and '2011-06-28 ';निम्न आउटपुट है -
+-----+-----------------------+| आईडी | शिपिंग तिथि |+----+-----------------------+| 1 | 6/28/2011 9:58 पूर्वाह्न || 3 | 6/22/2011 11:45:40 पूर्वाह्न |+----+---------------------------+2 पंक्तियाँ सेट में (0.00 सेकंड)