अपने आप से पूछें कि आपको पहली बार इस तरह के एक चर की आवश्यकता क्यों है।
सबसे अधिक संभावना है, आप अपने डेटा के बारे में झूठ बोल रहे हैं: जब भी आपको "समय के अंत" चर की आवश्यकता होती है, तो आप समय के वास्तविक अंत की बात नहीं कर रहे होते हैं; बल्कि आप ऐसी चीजों को व्यक्त कर रहे हैं जैसे "इस तिथि के लिए कोई ऊपरी बाध्यता नहीं है", "यह घटना अनिश्चित काल तक जारी रहती है", या इसी तरह की।
सही समाधान, फिर, एक जादू मूल्य पर भरोसा करने के बजाय सीधे इन इरादों को व्यक्त करना है: अशक्त दिनांक प्रकारों का उपयोग करें (जहां null
"कोई अंतिम दिनांक सेट" इंगित करता है), "अनिश्चित" बूलियन फ़ील्ड जोड़ें, एक बहुरूपिक आवरण (जो कर सकते हैं) का उपयोग करें या तो एक वास्तविक तारीख या एक विशेष "अनिश्चित" मान), या जो भी आपकी प्रोग्रामिंग भाषा को पेश करना है।
बेशक, सही समाधान हमेशा संभव नहीं होता है, इसलिए हो सकता है कि आप सभी के बाद एक जादुई मूल्य का उपयोग कर रहे हों, लेकिन जब आप ऐसा करते हैं, तो आपको प्रति मामले के आधार पर एक उचित मूल्य तय करना होगा, क्योंकि जो तारीखें करते हैं और नहीं करते हैं यह सुनिश्चित करें कि आप जिस डोमेन पर मॉडलिंग कर रहे हैं, उस पर निर्भर करता है - यदि आप लॉग टाइमस्टैम्प का भंडारण कर रहे हैं, तो 01/01/2999 एक उचित "समय का अंत" है; आपके आवेदन की संभावनाएं अभी भी लगभग 1000 साल से इस्तेमाल की जा रही हैं, मुझे लगता है, व्यावहारिक रूप से शून्य होगा। इसी तरह के विचार कैलेंडर अनुप्रयोगों के लिए जाते हैं। लेकिन क्या होगा यदि आपका सॉफ़्टवेयर वैज्ञानिक डेटा को संभालना है, कहो, पृथ्वी की जलवायु के बारे में दीर्घकालिक भविष्यवाणियां? वे वास्तव में भविष्य में एक हजार साल देखना चाह सकते हैं। या इसे एक कदम आगे ले जाएं; खगोल विज्ञान, एक ऐसा क्षेत्र जहां अरबों वर्षों के आदेश पर बहुत बड़े समयों में इसका कारण पूरी तरह से सामान्य है, पथ और भविष्य दोनों में। उन लोगों के लिए, 01/01/2999 एक पूरी तरह से हास्यास्पद मनमाना है। ओटीओएच, एक कैलेंडर प्रणाली जो भविष्य में दस ट्रिलियन वर्ष तक के समय को संभालने में सक्षम है, शायद ही किसी दंत चिकित्सक नियुक्ति ट्रैकिंग प्रणाली के लिए व्यावहारिक है, यदि केवल भंडारण क्षमता के कारण।
दूसरे शब्दों में, एक मूल्य के लिए कोई सबसे अच्छा विकल्प नहीं है जो गलत है और मनमाने ढंग से शुरू करने के लिए मनमाना है। यही कारण है कि किसी भी प्रोग्रामिंग भाषा में परिभाषित एक को देखना वास्तव में असामान्य है; जो लोग आमतौर पर इसे "समय का अंत" नाम नहीं देते हैं, बल्कि कुछ ऐसा DATE_MAX
(या Date.MAX
) करते हैं, और इसका मतलब "सबसे बड़ा मूल्य है जिसे डेट डेटाइप में संग्रहीत किया जा सकता है", "समय का अंत" या नहीं "अनिश्चित काल"।