MySQL दिनांक तुलना DATE_FORMAT() के साथ
इस आलेख में, हम पता लगाएंगे कि DATE_FORMAT() का उपयोग करके MySQL में दिनांक तुलना कैसे करें फ़ंक्शन, दिनांकों की तुलना करते समय उपयोगकर्ता के सामने आने वाली एक विशिष्ट समस्या को संबोधित करता है।
समस्या
DATE_FORMAT() का उपयोग करके तिथियों की तुलना करते समय उपयोगकर्ता को एक चुनौती का सामना करना पड़ा। दिनांकों को निम्नलिखित प्रारूप में संग्रहीत किया गया था: '%d-%m-%Y', जो आसानी से क्रमबद्ध करने योग्य प्रारूप नहीं है। नीचे दी गई क्वेरी का उपयोग करते हुए, उपयोगकर्ता ने तिथियों की तुलना करने का प्रयास किया:
SELECT DATE_FORMAT(DATE(starttime), '%d-%m-%Y')
FROM data
WHERE DATE_FORMAT(DATE(starttime), '%d-%m-%Y') >= '02-11-2012';
हालाँकि, परिणाम में '28-10-2012' शामिल था, जो था उपयोगकर्ता की अपेक्षाओं के अनुसार गलत है।
समाधान
समस्या इसलिए उत्पन्न होती है क्योंकि हम तारीखों के बजाय स्ट्रिंग्स की तुलना कर रहे हैं। DATE_FORMAT() किसी दिनांक को एक स्ट्रिंग में परिवर्तित करता है, और स्ट्रिंग्स की तुलना शब्दकोषीय रूप से की जाती है। इस मामले में, '28-10-2012' शब्दावली की दृष्टि से '02-11-2012' से बड़ा है, भले ही '02-11-2012' बाद की तारीख है।
तिथियों की सटीक तुलना करने के लिए, हमें इसकी आवश्यकता है उनकी तुलना दिनांक के रूप में करें, स्ट्रिंग के रूप में नहीं। हम स्टार्टटाइम फ़ील्ड से दिनांक घटक निकालने के लिए DATE() फ़ंक्शन का उपयोग कर सकते हैं, और फिर >= ऑपरेटर का उपयोग करके दिनांकों की तुलना कर सकते हैं, जैसा कि निम्नलिखित क्वेरी में दिखाया गया है:
SELECT DATE_FORMAT(DATE(starttime), '%d-%m-%Y')
FROM data
WHERE DATE(starttime) >= DATE('2012-11-02');
यह क्वेरी तारीखों की सही तुलना करेगी और परिणाम से '28-10-2012' को बाहर कर देगी।
अतिरिक्त विचार
यह विचार करने योग्य है कि क्या DATETIME फ़ील्ड प्रारंभ समय को DATE फ़ील्ड में बदला जा सकता है। इससे बार-बार रूपांतरण की आवश्यकता समाप्त हो जाएगी, संभावित रूप से प्रदर्शन में सुधार होगा।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3