"दिनांक" 0000-00-00 "मान्य है या नहीं" तिथि "सवाल के लिए अप्रासंगिक है।" बस डेटाबेस बदलें "शायद ही कभी एक व्यवहार्य समाधान है।
तथ्य:
- MySQL शून्य के मान के साथ एक तारीख की अनुमति देता है।
- इस "सुविधा" को अन्य भाषाओं के साथ व्यापक उपयोग प्राप्त है।
तो, अगर मैं "बस डेटाबेस में परिवर्तन करता हूं", तो PHP कोड की हजारों लाइनें टूट जाएंगी।
जावा प्रोग्रामर को MySQL शून्य-तिथि को स्वीकार करने की आवश्यकता होती है और उन्हें डेटाबेस में शून्य तिथि डालने की आवश्यकता होती है, जब अन्य भाषाएं इस "सुविधा" पर भरोसा करती हैं।
MySQL से जुड़ने वाले एक प्रोग्रामर को शून्य और 0000-00-00 के साथ-साथ वैध तिथियों को संभालने की आवश्यकता होती है। शून्य से 0000-00-00 को बदलना एक व्यवहार्य विकल्प नहीं है, क्योंकि तब आप यह निर्धारित नहीं कर सकते हैं कि डेटाबेस में वापस लिखने के लिए तारीख 0000-00-00 होने की उम्मीद थी।
0000-00-00 के लिए, मैं एक स्ट्रिंग के रूप में दिनांक मान की जाँच करने का सुझाव देता हूं, फिर इसे ("y", 1), या ("yyyy-MM-dd", 0001-01-01), या किसी भी अमान्य में बदल रहा हूं MySQL दिनांक (वर्ष 1000 से कम, iirc)। MySQL में एक और "फीचर" है: निम्न तिथियां स्वतः 0000-00-00 में बदल जाती हैं।
मुझे पता है कि मेरा सुझाव एक कीचड़ है। लेकिन ऐसा है MySQL की तारीख संभालना। और दो कीचड़ इसे सही नहीं बनाते हैं। इस तथ्य का तथ्य यह है, कई प्रोग्रामर को MySQL शून्य-तिथियों को हमेशा के लिए संभालना होगा ।