পোস্টগ্রেসে টাইম জোনটি ইউটিসি-তে 0001 এ অফসেট-অফ-ইউটিসি কেন থাকে?


16

Postgres 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। কেন?

ইউটিসির অধীনে কোনও সমস্যা নেই

ইউটিসির অধীনে ডেটা প্রবেশের সময় এ জাতীয় কোনও সমস্যা নেই।

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, এটি "খ্রিস্টপূর্ব" এবং "খ্রিস্টাব্দ" এর যুগের প্রধান বিষয়। 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"


খ্রিস্টপূর্ব এবং খ্রিস্টাব্দের মধ্যবর্তী মূল পয়েন্টটি বছর 1। এটি হয় বছর 1 বা বছর -1। এটি ঠিক কিভাবে বছর আদি নামকরণ করা হয়। বছর 0 এর অস্তিত্ব নেই (বা বরং এটি অপরিজ্ঞাত কারণ এটি অস্তিত্বের পরিবর্তে সংজ্ঞা সমস্যা বেশি)।
slebetman

2000 উদযাপন চলাকালীন কিছুটা পেডেন্টিক লোকেরা যখন বলেছিল যে দ্বিতীয় সহস্রাব্দ প্রযুক্তিগতভাবে 2001 সালে নয়, 2000 সালে শুরু হয়েছিল? এই জন্য. বছরগুলি 1 থেকে শুরু হয়, 0 নয় এবং 1 বছরের আগের বছরটি খ্রিস্টপূর্ব 1 বিসি (অর্থাত্ বছর -১)
স্লাইবেটম্যান

1
@ স্লেবেটম্যান যা ব্যবহৃত ক্যালেন্ডারের উপর নির্ভর করে। প্রোলেপটিক গ্রেগরিয়ান উভয়েরই ফর্ম রয়েছে যা 1 সিই এর আগের বছর হিসাবে 0 ব্যবহার করে এবং একটি ফর্ম যা 1 সিই পূর্বে অবধি 1 বিসিই স্থাপন করে (আইএসও 8601 উভয়কেই 0000বৈধ বছরের মূল্য হিসাবে গ্রহণ করার ক্ষেত্রে সমর্থন করে তবে এটি ব্যবহৃত হয় বা না তা জোর করে না )। এটি সত্য যে PostgreSQL কোনও বছর 0 ছাড়াই ফর্মটি ব্যবহার করে, তবে আপনি "বছরগুলি 1 শুরু করে না, 0" লিখতে পারবেন না যেন এটি কিছুটা সার্বজনীন সত্য fact উদাহরণস্বরূপ জ্যোতির্বিদ্যা সংক্রান্ত ডেটার জন্য তাদের মধ্যে অনুবাদ করা সহজ। (তৃতীয় সহস্রাব্দ এখনও 2001 সালে যে কোনও উপায়ে শুরু হয়েছিল, যেহেতু এটি 1 ই সি থেকে তৃতীয় সহস্রাব্দ থেকে গেছে)
জন হান্না

@ জোহান্না: প্রকৃতপক্ষে গ্রেগরিয়ান ক্যালেন্ডারের কোনও রূপই তখনকার সময়ে কেউই ব্যবহার করছিল না , সুতরাং আমি মনে করি জুলিয়ান ক্যালেন্ডারটি এখানে অধিকারের জন্য উপযুক্ত - যার এক বছরের শূন্য নেই।
কেভিন

উত্তর:


22

18 নভেম্বর, 1883 12:00 (নতুন সময়) এ, আমেরিকান রেলপথ দ্বারা স্ট্যান্ডার্ড সময় গৃহীত হয়েছিল।

এর অর্থ হ'ল সেই সময়ের আগে লস অ্যাঞ্জেলেস প্রকৃত স্থানীয় সময় ব্যবহার করতেন, গড় সৌর সময়ের উপর ভিত্তি করে। এর পরে, এটি তার স্থানীয় সময় অঞ্চলে স্থানান্তরিত হয়েছিল, যা গ্রিনিচ গড় সময় থেকে কয়েক ঘন্টা অবিচ্ছেদ্য অফসেট ছিল, আগের সময়ের চেয়ে কিছুটা আলাদা ছিল।

আরো জানতে চান?

  • আইএএনএ: সময় অঞ্চলগুলি থেকে tzdata টাইমজোন ডেটাবেস ডাউনলোড করুন ।

  • অভ্যন্তরে, আপনি (অনেক) টাইমজোনগুলির সংজ্ঞা পেয়ে যাবেন, যার সাথে সময়ের সাথে প্রচুর প্রকরণ রয়েছে এবং কোথায় কী পরিবর্তন হয়েছে এবং কখন কী হয়েছে তার বিশদ মন্তব্য সহ প্রচুর মন্তব্য রয়েছে। এটি পড়ার বিনোদন!

  • 1883, 18 নভেম্বর পরিবর্তন সম্পর্কিত উইকিপিডিয়া: টাইম জোন পৃষ্ঠাতে উইকিপিডিয়ায় কিছু আকর্ষণীয় তথ্য রয়েছে :

রেলওয়ের সময়
...
19নবিংশ শতাব্দীর মাঝামাঝি সময়ে আমেরিকান রেলপথের টাইমকিপিং কিছুটা বিভ্রান্ত হয়েছিল। প্রতিটি রেলপথ সাধারণত নিজস্ব সদর দফতর বা সর্বাধিক গুরুত্বপূর্ণ টার্মিনাসের স্থানীয় সময়ের উপর ভিত্তি করে নিজস্ব স্ট্যান্ডার্ড সময় ব্যবহার করে এবং রেলপথের ট্রেনের সময়সূচিটি নিজস্ব সময় ব্যবহার করে প্রকাশিত হত। বেশ কয়েকটি রেলপথ দ্বারা পরিবেশন করা কিছু জংশনগুলির প্রতিটি রেলপথের জন্য একটি ঘড়ি ছিল, প্রত্যেকটি আলাদা সময় দেখায়।
... ডাউডের ব্যবস্থাটি আমেরিকান রেলপথগুলি কখনও গ্রহণ করে নি। পরিবর্তে, মার্কিন এবং কানাডিয়ান রেলপথগুলি ট্র্যাভেলারের অফিসিয়াল রেলওয়ে গাইডের সম্পাদক উইলিয়াম এফ। অ্যালেনের প্রস্তাবিত একটি সংস্করণ কার্যকর করেছে। এর সময় অঞ্চলগুলির সীমানা রেলপথ স্টেশনগুলির মধ্য দিয়ে চলত, প্রায়শই প্রধান শহরগুলিতে। উদাহরণস্বরূপ, এর পূর্ব এবং কেন্দ্রীয় সময় অঞ্চলগুলির মধ্যে সীমানাটি ডেট্রয়েট, বাফেলো, পিটসবার্গ, আটলান্টা এবং চার্লস্টনের মধ্য দিয়ে প্রবাহিত হয়েছিল। ১৮৮৮ সালের ১৮ নভেম্বর রবিবার এটি উদ্বোধন করা হয়, "দু'দিনের দিন" নামেও ডাকা হয় , যখন প্রতিটি রেলপথ স্টেশন ঘড়িটি প্রতিটি সময় অঞ্চলের মধ্যে স্ট্যান্ডার্ড-সময় দুপুর পৌঁছে যাওয়ার কারণে পুনরায় সেট করা হয়। জোনগুলির নামকরণ করা হয়েছিল আন্তঃক্লোনিয়াল, পূর্ব, মধ্য, পর্বত এবং প্রশান্ত মহাসাগর। ...

এছাড়াও নোট করুন যে এটি পোস্টগ্র্যাস্কিলের সাথে সুনির্দিষ্ট নয়। এটি যে কোনও সফ্টওয়্যার বা অপারেটিং সিস্টেমের জন্য বৈধ যা tzdata ডেটাবেস ব্যবহার করে (যদিও অনেকগুলি 1970 এর পরে বা 1901 এর পরে তারিখের মধ্যে সীমাবদ্ধ থাকবে, সুতরাং 1883 এর নাগালের বাইরে রয়েছে, তবে সেখানে অনেক জায়গায় অনেকগুলি অ্যাডজাস্টমেন্ট রয়েছে at বিভিন্ন বার).

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.