पोस्टग्रेज में वर्ष 0001 पर टाइम ज़ोन का ऐसा क्रेज़ी ऑफ़सेट-यूटीसी क्यों है?


16

9.5 के पोस्टग्रैज में, मैं वर्ष 0001(कोई वर्ष शून्य 0000) के साथ प्रयोग करते समय नीचे देखे गए परिणाम को देखकर आश्चर्यचकित था ।

की शुरुआत -07:52:58?

कुछ उदाहरण कोड। ध्यान दें कि मैंने TIMESTAMP WITH TIME ZONEऔर का मिश्रित उपयोग किया है TIMESTAMP WITHOUT TIME ZONE, इसलिए ध्यान से पढ़ें।

SET TIME ZONE 'America/Los_Angeles' ;

SELECT (TIMESTAMP WITH TIME ZONE '2015-01-01 00:00:00.0', 
        TIMESTAMP WITH TIME ZONE '0001-01-01 00:00:00.0Z', 
        TIMESTAMP WITHOUT TIME ZONE '0001-01-01 00:00:00.0Z') ;

("2015-01-01 00:00:00-08","0001-12-31 16:07:02-07:52:58 BC","0001-01-01 00:00:00")

मैं उस दूसरे मूल्य से हैरान हूं 0001-12-31 16:07:02-07:52:58 BC:। मैं समझता हूं कि हमें आठ घंटे पीछे की ओर जाना चाहिए, क्योंकि America/Los_Angelesऑफसेट से यूटीसी आठ घंटे पीछे है -08:00लेकिन इसके बजाय -08:00ऑफसेट है -07:52:58। क्यों?

UTC के तहत कोई समस्या नहीं

UTC के तहत डेटा दर्ज करते समय ऐसा कोई मुद्दा नहीं है।

SET TIME ZONE 'UTC' ;

SELECT (TIMESTAMP WITH TIME ZONE '2015-01-01 00:00:00.0',  
        TIMESTAMP WITH TIME ZONE '0001-01-01 00:00:00.0Z', 
        TIMESTAMP WITHOUT TIME ZONE '0001-01-01 00:00:00.0Z');

("2015-01-01 00:00:00+00","0001-01-01 00:00:00+00","0001-01-01 00:00:00")

नो ईयर जीरो

वैसे, तारीख का हिस्सा सही लग रहा है। ऐसा लगता है कि कोई वर्ष नहीं है 0000, कि "BC" और "AD" युगों के बीच धुरी बिंदु है। वर्ष का पहला पल 0001 लें, एक घंटा घटाएं, और आप वर्ष प्राप्त करें 0001 BC- इसलिए कोई वर्ष शून्य नहीं है।

SET TIME ZONE 'UTC' ;

INSERT INTO moment_  -- TIMESTAMP WITH TIME ZONE.
VALUES ( TIMESTAMP '0001-01-01 00:00:00.0Z' - INTERVAL '1 hour' ) ;

SET TIME ZONE 'UTC' ;

TABLE moment_ ;

परिणाम साल है 0001 BCतो हम से कूद, 0001करने के लिए 0001 BC; कोई वर्ष शून्य नहीं 0000

"0001-12-31 23:00:00+00 BC"

इसके अलावा, समय क्षेत्र
बिलिंक

BC और AD के बीच की धुरी बिंदु वर्ष 1 है। यह या तो वर्ष 1 या वर्ष -1 है। यह सिर्फ यह है कि मूल रूप से वर्षों का नाम कैसे दिया जाता है। वर्ष 0 मौजूद नहीं है (या बल्कि, अपरिभाषित है क्योंकि यह अस्तित्व की बजाय एक परिभाषा समस्या का अधिक है)।
slebetman

2000 के समारोहों के दौरान रास्ता याद रखें जब कुछ पंडितों ने कहा कि दूसरी सहस्राब्दी तकनीकी रूप से वर्ष 2001 में शुरू होती है, 2000 में नहीं? इसीलिए। वर्ष 1 से शुरू होता है, 0. नहीं। और वर्ष 1 वर्ष से पहले वर्ष 1 ईसा पूर्व (यानी। वर्ष -1) है
बेपनाह

1
@slebetman उपयोग में कैलेंडर पर निर्भर करता है। प्रोलेप्टिक ग्रेगोरियन में एक ऐसा रूप होता है जो 1 सीई से पहले वर्ष के रूप में 0 का उपयोग करता है, और 1 सीई से पहले 1 बीसीई का उपयोग करने वाला एक फॉर्म (आईएसओ 8601 दोनों 0000एक वैध वर्ष के मूल्य के रूप में दोनों का समर्थन करता है, लेकिन इसका उपयोग करने या न करने पर जोर देता है। )। यह सच है कि PostgreSQL बिना किसी वर्ष 0 के फॉर्म का उपयोग करता है, लेकिन आप यह नहीं बता सकते हैं कि "वर्ष 1 शुरू करें, 0 नहीं" जैसा कि इसके कुछ सार्वभौमिक तथ्य हैं। उदाहरण के लिए उनके बीच अनुवाद करना आसान है जैसे कि खगोलीय डेटा। (तीसरी सहस्राब्दी अभी भी 2001 में या तो शुरू हुई, क्योंकि यह 1 सहस्राब्दी के बाद तीसरी सहस्राब्दी बनी रही)
जॉन हैना

@ जोहन्ना: कोई भी वास्तव में उस समय प्रोलेप्टिक ग्रेगोरियन कैलेंडर के किसी भी रूप का उपयोग नहीं कर रहा था , लेकिन मुझे लगता है कि यहां जूलियन कैलेंडर को विशेषाधिकार देना उचित है - जिसमें एक वर्ष शून्य नहीं है।
केविन

जवाबों:


22

18 नवंबर 1883 को 12:00 बजे (नया समय), मानक समय को अमेरिकी रेलमार्गों द्वारा अपनाया गया था।

इसका मतलब यह है कि उस समय से पहले, लॉस एंजिल्स ने वास्तविक स्थानीय समय का उपयोग किया था, मतलब सौर समय के आधार पर। उसके बाद, इसे अपने स्थानीय समय क्षेत्र में स्थानांतरित कर दिया गया, जो ग्रीनविच मीन टाइम से घंटों का अभिन्न अंग रहा, पिछली बार से थोड़ा अलग था।

अधिक जानना चाहते हैं?

  • IZ : समय क्षेत्र से tzdata Timezone डेटाबेस डाउनलोड करें ।

  • अंदर, आपको (कई) टाइमज़ोन की परिभाषाएँ मिलेंगी, जिनमें समय के साथ-साथ बहुत सारी विविधताएँ होती हैं, साथ ही बहुत सारी टिप्पणियाँ होती हैं कि क्या और कहाँ बदलाव हुए। यह मनोरंजक है पढ़ने!

  • विकिपीडिया में भी कुछ दिलचस्प तथ्य हैं, १ November November३, १: नवंबर के बदलाव के बारे में टाइम ज़ोन पेज

रेलवे का समय
...
19 वीं शताब्दी के मध्य में अमेरिकी रेलमार्ग पर समय की मार कुछ हद तक उलझी हुई थी। प्रत्येक रेलमार्ग ने अपने स्वयं के मानक समय का उपयोग किया, आमतौर पर अपने मुख्यालय के स्थानीय समय या सबसे महत्वपूर्ण टर्मिनस के आधार पर, और रेलरोड के ट्रेन शेड्यूल को अपने समय का उपयोग करके प्रकाशित किया गया था। कई रेलमार्गों द्वारा दिए गए कुछ जंक्शनों में प्रत्येक रेलमार्ग के लिए एक घड़ी थी, प्रत्येक में एक अलग समय दिखाई देता था।
... डॉवड की प्रणाली को अमेरिकी रेलमार्गों ने कभी स्वीकार नहीं किया। इसके बजाय, अमेरिका और कनाडाई रेलमार्गों ने ट्रैवलर्स ऑफिशियल रेलवे गाइड के संपादक विलियम एफ। एलन द्वारा प्रस्तावित एक संस्करण को लागू किया। अपने समय क्षेत्रों की सीमाएं प्रमुख शहरों में, अक्सर रेलवे स्टेशनों के माध्यम से चलती थीं। उदाहरण के लिए, अपने पूर्वी और मध्य समय क्षेत्रों के बीच की सीमा डेट्रायट, बफ़ेलो, पिट्सबर्ग, अटलांटा और चार्ल्सटन के माध्यम से चलती थी। इसका उद्घाटन रविवार, 18 नवंबर, 1883 को , "द डे ऑफ टू नून" के रूप में भी किया गया था, जब प्रत्येक रेलवे स्टेशन की घड़ी को रीसेट किया गया था क्योंकि प्रत्येक समय क्षेत्र में मानक समय दोपहर तक पहुंच गया था। क्षेत्रों को इंटरकॉनिकल, पूर्वी, मध्य, पर्वत और प्रशांत नाम दिया गया था। ...

यह भी ध्यान दें कि यह Postgresql के लिए विशिष्ट नहीं है। यह किसी भी सॉफ्टवेयर या ऑपरेटिंग सिस्टम के लिए मान्य है जो tzdata डेटाबेस का उपयोग करता है (हालांकि निश्चित रूप से कई या तो 1970 या 1901 के बाद की तारीखों तक सीमित होगा, इसलिए 1883 पहुंच से परे है, लेकिन सभी जगहों पर कई, कई अन्य समायोजन हैं अलग - अलग समय)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.