1 जनवरी 1753 का उपयोग करने का निर्णय (1753-01-01
) SQL सर्वर में डेटाटाइम के लिए न्यूनतम दिनांक मान अपने Sybase मूल पर वापस चला जाता है।
तिथि के महत्व को हालांकि इस व्यक्ति के लिए जिम्मेदार ठहराया जा सकता है।
फिलिप स्टेनहोप, चेस्टरफील्ड के चौथे अर्ल। ब्रिटिश संसद के माध्यम से कैलेंडर (नई शैली) अधिनियम 1750 का संचालन किसने किया। इसने ब्रिटेन और उसके तत्कालीन उपनिवेशों के लिए ग्रेगोरियन कैलेंडर को अपनाने के लिए कानून बनाया।
कुछ दिन गायब थे (इंटरनेट संग्रह लिंक) ब्रिटिश कैलेंडर में 1752 में जब समायोजन अंततः जूलियन कैलेंडर से किया गया था। 3 सितंबर, 1752 से 13 सितंबर, 1752 तक खो गए थे।
कालेन डेलाने ने चुनाव को इस तरह समझाया
<ब्लॉकक्वॉट>तो, 12 दिन बीत जाने के बाद, आप तारीखों की गणना कैसे कर सकते हैं? उदाहरण के लिए, आप 12 अक्टूबर, 1492 और 4 जुलाई, 1776 के बीच दिनों की संख्या की गणना कैसे कर सकते हैं? क्या आप उन 12 दिनों के लापता लोगों को शामिल करते हैं? इस समस्या को हल करने से बचने के लिए, मूल Sybase SQL सर्वर डेवलपर्स ने 1753 से पहले की तारीखों की अनुमति नहीं देने का फैसला किया। आप वर्ण फ़ील्ड का उपयोग करके पहले की तारीखों को संग्रहीत कर सकते हैं, लेकिन आप किसी भी डेटाटाइम फ़ंक्शन का उपयोग नहीं कर सकते हैं जो पहले की तारीखों को आप वर्ण फ़ील्ड में संग्रहीत करते हैं।
1753 का चुनाव कुछ हद तक एंग्लोसेंट्रिक प्रतीत होता है, हालांकि यूरोप में कई कैथोलिक देश ब्रिटिश कार्यान्वयन से पहले 170 साल पहले कैलेंडर का उपयोग कर रहे थे (मूल रूप से चर्च द्वारा विरोध के कारण देरी हुई)। इसके विपरीत, रूस में बहुत बाद में, 1918 तक कई देशों ने अपने कैलेंडर में सुधार नहीं किया। दरअसल 1917 की अक्टूबर क्रांति ग्रेगोरियन कैलेंडर के तहत 7 नवंबर को शुरू हुई थी।
दोनों datetime
और नया datetime2
जो के उत्तर में उल्लिखित डेटाटाइप इन स्थानीय अंतरों को ध्यान में रखने का प्रयास नहीं करते हैं और केवल ग्रेगोरियन कैलेंडर का उपयोग करते हैं।
तो datetime2
. की अधिक रेंज के साथ
SELECT CONVERT(VARCHAR, DATEADD(DAY,-5,CAST('1752-09-13' AS DATETIME2)),100)
रिटर्न
Sep 8 1752 12:00AM
datetime2
. के साथ एक अंतिम बिंदु डेटा प्रकार यह है कि यह प्रोलेप्टिक ग्रेगोरियन कैलेंडर का उपयोग करता है जो वास्तव में आविष्कार से पहले काफी पीछे की ओर प्रक्षेपित होता है इसलिए ऐतिहासिक तिथियों से निपटने में इसका सीमित उपयोग होता है।
यह जावा ग्रेगोरियन कैलेंडर क्लास जैसे अन्य सॉफ़्टवेयर कार्यान्वयन के विपरीत है, जो 4 अक्टूबर, 1582 तक की तारीखों के लिए जूलियन कैलेंडर का पालन करने में चूक करता है और फिर नए ग्रेगोरियन कैलेंडर में 15 अक्टूबर, 1582 तक कूद जाता है। यह उस तारीख से पहले लीप वर्ष के जूलियन मॉडल और उस तारीख के बाद ग्रेगोरियन मॉडल को सही ढंग से संभालता है। कॉलर द्वारा setGregorianChange()
. पर कॉल करके कटओवर की तारीख बदली जा सकती है .
कैलेंडर को अपनाने के साथ कुछ और विशिष्टताओं पर चर्चा करने वाला एक काफी मनोरंजक लेख यहां पाया जा सकता है।