sql server meaning SQL সার্ভারে 1/1/1753 এর তাত্পর্য কী?




sql এর মূল তিনটি ক্লোজ কি (4)

কেন 1753? 1752 এর বিরুদ্ধে তাদের কি আছে? আমার মহান মহান মহান মহান মহান মহান মহান পিতামহ খুব বিক্ষুব্ধ হবে।


1752 ব্রিটেনের বছরটি জুলিয়ান থেকে গ্রেগরিয়ান ক্যালেন্ডারে স্যুইচ করা হয়েছিল। আমি মনে করি সেপ্টেম্বরে 17২5 সালের দুই সপ্তাহের ফলস্বরূপ কোনও ফলাফল ঘটেনি, যা সাধারণ এলাকায় তারিখগুলির জন্য প্রভাব ফেলে।

একটি ব্যাখ্যা: http://uneasysilence.com/archive/2007/08/12008/ ( ইন্টারনেট আর্কাইভ সংস্করণ )


এই পুরো গল্পটি কতটা তারিখ সমস্যা ছিল এবং কীভাবে বড় DBMS এই সমস্যাগুলি পরিচালনা করেছিল।

1 এবং আজকের দিনের মধ্যে, পশ্চিমা বিশ্বের প্রকৃতপক্ষে দুটি প্রধান ক্যালেন্ডার ব্যবহার করেছে: জুলিয়াস সিজারের জুলিয়ান ক্যালেন্ডার এবং পোপ গ্রেগরি XIII এর গ্রেগরিয়ান ক্যালেন্ডার। দুটি ক্যালেন্ডার শুধুমাত্র একটি নিয়মকে সম্মান করে: একটি লিপ বছর কি তা নির্ধারণ করার নিয়ম। জুলিয়ান ক্যালেন্ডারে, চার বছরের মধ্যে ভাগ করা সমস্ত বছর leap বছর। গ্রেগরিয়ান ক্যালেন্ডারে, চার বছরের মধ্যে ভাগ করা সমস্ত বছর লাফ বছর হয়, তবে সেই বছরগুলি 100 দ্বারা বিভক্ত (তবে 400 দ্বারা বিভক্ত নয়) ব্যতীত বছরের ছুটি হয় না। সুতরাং, 1700, 1800, এবং 1900 বছর জুলিয়ান ক্যালেন্ডারে লিপ বছর, কিন্তু গ্রেগরিয়ান ক্যালেন্ডারে নয়, 1600 এবং 2000 বছর উভয় ক্যালেন্ডারে লিপ বছর হয়।

পোপ গ্রেগরি XIII 15২8 সালে তার ক্যালেন্ডারটি চালু করলে তিনি 4 অক্টোবর, 1582 ও 15 অক্টোবর 1582 এর মধ্যকার দিনগুলি বাদ দেওয়ার নির্দেশ দেন, অর্থাৎ তিনি বলেন, 4 অক্টোবর পরের দিনটি 15 অক্টোবর হওয়া উচিত। অনেক দেশ বিলম্ব পরিবর্তন, যদিও। 17২5 সাল পর্যন্ত ইংল্যান্ড ও তার উপনিবেশগুলি জুলিয়ান থেকে গ্রেগরিয়ান গণনা পর্যন্ত স্যুইচ করে নি, তাই তাদের জন্য নির্ধারিত তারিখ 4 সেপ্টেম্বর থেকে 14 সেপ্টেম্বর 1752 এর মধ্যে ছিল। অন্য দেশগুলি অন্য সময়ে স্যুইচ করেছিল, কিন্তু 1582 এবং 1752 তারিখগুলি প্রাসঙ্গিক তারিখগুলির জন্য আমরা আলোচনা করছি যে DBMS।

সুতরাং, দুটি সমস্যা ফিরে যায় যখন দুই সমস্যা তারিখ গাণিতিক সঙ্গে জন্মায়। প্রথমত, জুলিয়ান বা গ্রেগরিয়ান নিয়ম অনুযায়ী সুইচ গণনা করার কয়েক বছর আগে লাফ দিতে হবে? দ্বিতীয় সমস্যা হল, কখন এবং কীভাবে বাদ দেওয়া দিনের পরিচালনা করা উচিত?

বিগ ডিবিএমএস এই প্রশ্নগুলি পরিচালনা করে এইভাবেই হয়:

  • কোন সুইচ ছিল জাহির করা। এসকিউএল স্ট্যান্ডার্ডটি প্রয়োজন বলেই মনে হয়, যদিও আদর্শ নথিটি অস্পষ্ট: এটি কেবলমাত্র বলে যে তারিখগুলি "গ্রেগরিয়ান ক্যালেন্ডার ব্যবহার করে তারিখগুলির জন্য প্রাকৃতিক নিয়মগুলি দ্বারা সীমাবদ্ধ" -যেও "প্রাকৃতিক নিয়ম"। এই বিকল্পটি যে DB2 বেছে নেওয়া হয়েছে। ক্যালেন্ডারের কথা শুনে কেউ যখন কোনও ক্যালেন্ডারের নিয়মগুলি প্রয়োগ করে তখনও সর্বদা প্রয়োগ করা হয়, তখন প্রযুক্তিগত শব্দটি হল "সর্বহারা" ক্যালেন্ডারটি কার্যকর। সুতরাং, উদাহরণস্বরূপ, আমরা বলতে পারি যে DB2 একটি প্রলেপিক গ্রেগরিয়ান ক্যালেন্ডার অনুসরণ করে।
  • সম্পূর্ণরূপে সমস্যা এড়াতে। মাইক্রোসফ্ট এবং সিবबेस 1 জানুয়ারী, 1753 এ তাদের ন্যূনতম তারিখ মান সেট করে, আমেরিকা ক্যালেন্ডারগুলিকে পাল্টে দিয়ে নিরাপদে চলে গেছে। এটি নির্ভরযোগ্য, তবে সময়-সময় অভিযোগগুলির ভিত্তিতে এই দুটি DBMS গুলিতে দরকারী কার্যকারিতা নেই যা অন্যান্য DBMS এর আছে এবং যেগুলি SQL স্ট্যান্ডার্ড প্রয়োজন।
  • 1582 বাছাই করুন। ওরাও ওরা করেছিল। অ্যারাকাল ব্যবহারকারী একটি তারিখ খুঁজে পাবে যে অক্টোবর 15, 1582 অক্টোবর 4, 1582 অক্টোবর 4, 1582 এর 1 দিনের একটি মান প্রদান করে (কারণ 5 অক্টোবর অস্তিত্ব নেই) এবং ২9 ফেব্রুয়ারী 1300 তারিখ বৈধ (কারণ জুলিয়ান লিপ- বছর নিয়ম প্রযোজ্য)। কেন এসকিউএল স্ট্যান্ডার্ড এটি প্রয়োজন বলে মনে হচ্ছে না যখন ওরাকল অতিরিক্ত কষ্ট যান? উত্তর ব্যবহারকারীদের এটি প্রয়োজন হতে পারে। ইতিহাসবিদ এবং জ্যোতির্বিজ্ঞানীরা একটি সর্বহারা গ্রেগরিয়ান ক্যালেন্ডারের পরিবর্তে এই সংকর পদ্ধতি ব্যবহার করেন। (নামটি সত্ত্বেও জাভা-এর জন্য গ্রেগরিয়ান ক্যালেন্ডার ক্লাসটি প্রয়োগ করার সময় সূর্যটি বাছাই করা ডিফল্ট বিকল্পও, গ্রেগরিয়ান ক্যালেন্ডারটি একটি সংকর ক্যালেন্ডার।)

উত্স 1 এবং 2


ঘটনাক্রমে, উইন্ডোজ আর জানে না কিভাবে গত বছর মার্চ / এপ্রিল বা অক্টোবর / নভেম্বরে নির্দিষ্ট তারিখগুলির জন্য ইউটিসি ইউএস স্থানীয় সময়ে সঠিকভাবে রূপান্তর করতে হয়। সেই তারিখগুলি থেকে UTC- ভিত্তিক টাইমস্ট্যাম্পগুলি এখন কিছুটা অসংগত। মার্কিন সরকারের সর্বশেষ ডিএসটি নিয়মের সেটের আগে কোনও টাইমস্ট্যাম্প পরিচালনা করার জন্য কেবল ওএসটি সহজেই প্রত্যাখ্যান করা খুব কঠিন হবে, তাই এটি কেবল তাদের কিছু ভুলকে পরিচালনা করে। 1753 সালের আগে SQL সার্ভার তারিখগুলি প্রক্রিয়া করতে অস্বীকার করেছিল কারণ অতিরিক্ত বিশেষ লজিক সঠিকভাবে তাদের পরিচালনা করার জন্য প্রয়োজনীয় হবে এবং এটি তাদের ভুল পরিচালনা করতে চায় না।


1 লা জানুয়ারী 1753 ( 1753-01-01 ) ব্যবহার করার সিদ্ধান্তটি এসকিউএল সার্ভারে ডেটাটাইমের সর্বনিম্ন তারিখের মূল্য হিসাবে তার Sybase উত্স থেকে ফিরে যায়।

তারিখটির তাত্পর্য যদিও এই ব্যক্তিটির জন্য দায়ী করা যেতে পারে।

ফিলিপ স্ট্যানহোপ, চেস্টারফিল্ডের চতুর্থ আর্ল। কে ব্রিটিশ সংসদের মাধ্যমে ক্যালেন্ডার (নতুন স্টাইল) আইন 1750 চালায় । এটি ব্রিটেন এবং এর উপনিবেশগুলিতে গ্রেগরিয়ান ক্যালেন্ডার গ্রহণের জন্য আইন প্রণয়ন করেছিল।

1752 সালে ব্রিটিশ ক্যালেন্ডারে কিছু অনুপস্থিত দিন ছিল যখন জুলিয়ান ক্যালেন্ডার থেকে সমন্বয় শেষ করা হয়েছিল। সেপ্টেম্বর 3, 1752 থেকে সেপ্টেম্বর 13, 1752 হারিয়ে গেছে।

Kalen Delaney এই ভাবে পছন্দ explained

সুতরাং, 12 দিন হারিয়ে গেলে, আপনি কিভাবে তারিখ গণনা করতে পারেন? উদাহরণস্বরূপ, আপনি অক্টোবর 12, 1492, এবং 4 জুলাই, 1776 এর মধ্যে দিনের সংখ্যা গণনা করতে পারেন? আপনি 12 দিন অনুপস্থিত যারা অন্তর্ভুক্ত? এই সমস্যাটি সমাধান করতে এড়াতে, মূল Sybase SQL সার্ভার ডেভেলপাররা 1753 সালের পূর্বে তারিখগুলি মঞ্জুর করার সিদ্ধান্ত নেয় নি। আপনি অক্ষর ক্ষেত্রগুলি ব্যবহার করে পূর্বের তারিখগুলি সংরক্ষণ করতে পারেন তবে আপনি অক্ষরগুলিতে সংরক্ষণ করা পূর্ববর্তী তারিখগুলির সাথে কোনও ডেটাটাইম ফাংশন ব্যবহার করতে পারবেন না ক্ষেত্র।

1753 সালের নির্বাচনটি কিছুটা আংশিক কেন্দ্রীয় বলে মনে হয় তবে ইউরোপের অনেক ক্যাথলিক দেশ বৃটিশ বাস্তবায়ন (মূলত গির্জার বিরোধিতার কারণে বিলম্বিত) 170 বছর আগে ক্যালেন্ডার ব্যবহার করে আসছিল। বিপরীত দিক থেকে অনেক দেশ রাশিয়ার 1918 সালে অনেক দিন পর্যন্ত তাদের ক্যালেন্ডারগুলি সংস্কার করে নি। প্রকৃতপক্ষে 1917 সালের অক্টোবরে বিপ্লব 7 নভেম্বর গ্রেগরিয়ান ক্যালেন্ডারের অধীনে শুরু হয়েছিল।

জো এর উত্তরে উল্লেখিত datetime এবং নতুন datetime2 datetime উভয়ই এই স্থানীয় পার্থক্যগুলির জন্য অ্যাকাউন্ট করার চেষ্টা করে না এবং কেবলমাত্র গ্রেগরিয়ান ক্যালেন্ডারটি ব্যবহার করে।

তাই 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() কে কল করে কলারের তারিখ পরিবর্তন করতে পারে।

ক্যালেন্ডার গ্রহণ সঙ্গে কিছু আরো বিশেষত্ব আলোচনা একটি মোটামুটি বিনোদনের নিবন্ধ এখানে পাওয়া যাবে





internationalization