কেন টাইম জোনে ননডিটারনিস্টিক?


18

এসকিউএল সার্ভার AT TIME ZONE২০১ 2016 এর ননডেটারিস্টেমিক বলে মনে হচ্ছে। যাইহোক, আমি আনুষ্ঠানিকভাবে এটি উল্লেখ করে বা এর পিছনে যুক্তি সম্পর্কে যুক্তি দিয়ে কোনও নথিপত্র পাইনি।

AT TIME ZONEননডেটেরিম্যানস্টিক কেন ?

অ-নির্ধারণবাদ দেখানো উদাহরণ

নির্বাহ:

CREATE TABLE Test (
    LegacyTimestamp DATETIME,
    Timestamp AS LegacyTimestamp AT TIME ZONE 'Eastern Standard Time' PERSISTED
); 

নিম্নলিখিত ত্রুটি প্রদান করে:

Msg 4936, Level 16, State 1, Line 1
Computed column 'Timestamp' in table 'Test' cannot be persisted because the column is non-deterministic.

4
তিনটি শব্দ. দিবালোক সংরক্ষণ সময়.
পাপারাজ্জো

2
সময় হিসাবে পরিচিত দুঃস্বপ্নে স্বাগতম। আমার প্রায় ইচ্ছা যখন আপনি সময় সঞ্চয় করেন তখন এটি বাধ্যতামূলক ছিল, আপনি কোন সময় অঞ্চলটিও সংরক্ষণ করেছিলেন। আমি মাথা ব্যাথার ওষুধে এতটা সাশ্রয় করতাম
এরিক এস

'এটি টাইম জোনের অ-নির্ধারণবাদ প্রতিফলিত করতে ডকুমেন্টেশন আপডেট করার অনুরোধ করে একটি মাইক্রোসফ্ট কানেক্ট আইটেম তৈরি করেছে।
বেন গ্রিবাডো

উত্তর:


20

AT TIME ZONE দিবালোক সঞ্চয় সময় গণনা করার জন্য কিছু যুক্তি নিয়োগ করে । ডিএসটি অফসেট মানগুলি অপরিবর্তনীয় নয় (এগুলি উইন্ডোজ আপডেটের মাধ্যমে পরিবর্তিত হতে পারে ) এবং এটি উইন্ডোজ রেজিস্ট্রিতে বাহ্যিকভাবে অন্তর্ভুক্ত থাকে, সুতরাং AT TIME ZONEফলস্বরূপ এটি বাহ্যিক ডেটার উপর নির্ভরশীল হওয়ার কারণে নির্ধারক হতে পারে না।

একইভাবে, এ কারণেই sys.time_zone_infoকোনও দৃশ্য স্থিতিশীল রেফারেন্স সারণী নয়, এটি রেজিস্ট্রি মানগুলির উপর নির্ভর করে গণনা করা দরকার যা সর্বাধিক টু টু টাইমজোন তথ্য রয়েছে।


1
তবে রূপান্তরিত হওয়ার তারিখের রেফারেন্স হিসাবে এটি গণনা করা উচিত নয়? এটি যদি অ-
নিরঙ্কুশাত্মক

@ র্যান্ডম 832 ঠিক! আমি এর জন্য কিছু বিবরণ এড়িয়ে গেলাম, আমি আরও পরিষ্কার হতে আপডেট করেছি।
লোলিডিবিএ

2
@ র্যান্ডম 832, কেবলমাত্র পূর্বের তারিখগুলিই নয়, ভবিষ্যতের তারিখগুলি বিবেচনা করুন। যদি ভবিষ্যতের তারিখটি বিদ্যমান সময়ের পরিবর্তনের নিয়মের ভিত্তিতে সংরক্ষণ করা হয় তবে যদি নিয়মগুলি এখন থেকে তারপরে পরিবর্তিত হয় তবে মানটি অবৈধ হয়ে যাবে,
ড্যান গুজম্যান

1
জন: এটি একটি ভাল তথ্য, তবে এটিকে সামান্য পুনরায় সাজানো কি আরও প্রযুক্তিগতভাবে সঠিক হবে না যে এটি নিরস্ত্রীকরণের প্রকৃত কারণটি কেবল নিবন্ধ থেকে তথ্য পাওয়ার ক্ষেত্রে বাহ্যিক নির্ভরতার কারণে? নিশ্চিত, কেন এটা হার্ড কোডেড অ্যাপ্লিকেশন কোডে হচ্ছে উল্টোদিকে (যেমন মূল কারণ) সেখান থেকে তথ্য পেতে হয়েছে বেশিরভাগই কারণে কত ঘন ঘন ডিএসটি নিয়ম পরিবর্তন, এবং সত্য যে নতুন সময় মন্ডল চালু করা যেতে পারে, তবে তা সত্যিই গৌণ, তাই না? তবে "কেন" নির্বিশেষে যে কোনও বাহ্যিক নির্ভরতা যে কোনও ক্রিয়াকলাপটিকে অ-নিরস্ত করা উচিত।
সলোমন রুটজকি

1
অসাধারণ! এফওয়াইআই, আমি এখানে কিছু বরং আকর্ষণীয় তথ্য পেয়েছি - en.wikedia.org/wiki/Tz_datedia - যা কয়েকটি নথির মধ্যে একটি বলে মনে হচ্ছে (কমপক্ষে আমি এখনও অবধি খুঁজে পেতে পারি) যা নির্দেশ করে যে ডিএসটিই কেবল একমাত্র জিনিস নয় পরিবর্তন করতে. সি: \ উইন্ডোজ \ বিশ্বায়ন \ টাইম জোন \ টাইমজোনস.এক্সএমএল ফাইলটি থেকে আমি যা বলতে পারি তা থেকে , এমনকি বেস অফসেটগুলি সময়ের সাথে সাথে পরিবর্তিত হতে পারে যদিও ১৯ 1970০ সাল থেকে কম ঘন ঘন, আমার ধারণা +1 :-) (লিঙ্কটির খারাপ চরিত্রটি হওয়ায় এটি পুনরায় পোস্ট করতে হয়েছিল)
সলোমন রুটজকি

1

আমি নির্ধারিত এবং ননডেস্টেরিস্টিক বিষয়গুলিতে ননডেটারিস্ট্যানিক তালিকায় TIME ZONE যুক্ত করেছি এবং এটি টাইম জোনে বিষয়টিতে আমি যুক্ত করেছি: যেহেতু কিছু তথ্য (যেমন টাইমজোন বিধি) এসকিউএল সার্ভারের বাইরে রক্ষণাবেক্ষণ করা হয় এবং মাঝে মাঝে পরিবর্তিত হয়, এটি টাইম জোনের ফাংশনটিকে অ-সংজ্ঞাবিরোধী হিসাবে শ্রেণীবদ্ধ করা হয়। এটি আনার জন্য আপনাকে ধন্যবাদ। রিক বাইহাম, এসকিউএল সার্ভার বই অনলাইন।


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