आपका प्रारूप मूल रूप से शुरू करने के लिए क्रमबद्ध नहीं है - आप स्ट्रिंग्स . की तुलना कर रहे हैं , और स्ट्रिंग "28-10-2012" है "02-11-2012" से बड़ा।
इसके बजाय, आपको तारीखों की तुलना तारीखों के रूप में . करनी चाहिए , और उसके बाद ही उन्हें आउटपुट के लिए अपने लक्ष्य प्रारूप में परिवर्तित करें।
इसे आजमाएं:
select date_format(date(starttime),'%d-%m-%Y') from data
where date(starttime) >= date '2012-11-02';
(इनपुट हमेशा साल-महीने-मूल्य के रूप में होना चाहिए, दस्तावेज़ीकरण ।)
ध्यान दें कि यदि starttime
एक DATETIME
है फ़ील्ड में, आप बार-बार रूपांतरण से बचने के लिए क्वेरी बदलने पर विचार कर सकते हैं। (ऑप्टिमाइज़र इससे बचने के लिए पर्याप्त रूप से स्मार्ट हो सकता है, लेकिन यह जाँच के लायक है।)
select date_format(date(starttime),'%d-%m-%Y') from data
where starttime >= '2012-11-02 00:00:00';
(ध्यान दें कि किसी तिथि को d-m-Y
. के रूप में प्रारूपित करना असामान्य है शुरू करने के लिए - y-M-d
. का उपयोग करना बेहतर होगा सामान्य तौर पर, ISO-8601 मानक आदि होने के कारण, उपरोक्त कोड वही करता है जो आपने प्रश्न में पूछा था।)