"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > MySQL दिनांक की date_format के साथ तुलना अप्रत्याशित परिणाम क्यों दे रही है?

MySQL दिनांक की date_format के साथ तुलना अप्रत्याशित परिणाम क्यों दे रही है?

2024-11-12 को प्रकाशित
ब्राउज़ करें:446

Why Is MySQL Date Comparison with date_format Yielding Unexpected Results?

MySQL तिथियों की date_format के साथ तुलना करना

कई तिथि तुलना विधियों का प्रयास करने के बावजूद, एक उपयोगकर्ता को एक अप्रत्याशित परिणाम का सामना करना पड़ा। उन्होंने '%d-%m-%Y' के रूप में स्वरूपित तिथियों की तुलना करने की मांग की, लेकिन परिणाम सेट में एक गलत रिकॉर्ड शामिल कर दिया।

समस्या तिथियों के बजाय स्ट्रिंग्स की तुलना करने से उत्पन्न होती है। date_format फ़ंक्शन दिनांकों को स्ट्रिंग्स में परिवर्तित करता है, जिससे तुलना को लेक्सिकोग्राफ़िक क्रम के लिए अतिसंवेदनशील बना दिया जाता है। उदाहरण के लिए, '28-10-2012' वर्णानुक्रम में '02-11-2012' से बड़ा है, इसलिए कालानुक्रमिक रूप से पहले होने के बावजूद इसे परिणाम सेट में शामिल किया गया है।

इसे हल करने के लिए, तुलना की जानी चाहिए स्ट्रिंग के बजाय दिनांक. दिनांक फ़ंक्शन का उपयोग DATETIME या DATE फ़ील्ड से दिनांक घटक निकालने के लिए किया जा सकता है। निकाली गई तिथियों की तुलना करके, कालानुक्रमिक क्रम सुनिश्चित किया जाता है।

उदाहरण के लिए:

select date_format(date(starttime),'%d-%m-%Y') from data
where date(starttime) >= date '2012-11-02';

इस क्वेरी में, date(starttime) स्टार्टटाइम फ़ील्ड से तारीख निकालता है, जिसकी तुलना YYYY-MM में निर्दिष्ट तिथि से की जाती है -डीडी प्रारूप. date_format फ़ंक्शन का उपयोग केवल परिणाम को स्वरूपित करने के लिए किया जाता है। -%Y') डेटा से जहां प्रारंभ समय >= '2012-11-02 00:00:00';

यह क्वेरी बार-बार दिनांक रूपांतरण से बचती है क्योंकि तुलना सीधे DATETIME फ़ील्ड पर की जाती है।

याद रखें, आईएसओ -8601 मानक दिनांक प्रारूप के रूप में 'YYYY-MM-DD' का उपयोग करने की अनुशंसा करता है, लेकिन प्रदान किया गया कोड उपयोगकर्ता के निर्दिष्ट का पालन करता है '%d-%m-%Y' प्रारूप।
विज्ञप्ति वक्तव्य यह आलेख यहां पुनर्मुद्रित है: 1729739525 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3