প্রায় সমস্ত উত্তর এবং মন্তব্যগুলি পেশাদারদের পক্ষে ভারী হয়েছে এবং কনসকে আলোকপাত করেছে। এখানে এখন পর্যন্ত সমস্ত পেশাদার এবং কনস এর একটি পুনরুদ্ধার প্লাস কিছু গুরুত্বপূর্ণ কনস (নীচে # 2 এ) আমি কেবল একবার উল্লেখ করেছি বা মোটেও নয় উল্লেখ করেছি।
- পেশাদাররা:
1.1। আরও আইএসএস অনুগত (আইএসও 8601) (যদিও বাস্তবে এটি কীভাবে কার্যকর হয় তা আমি জানি না)।
1.2। অধিকতর পরিসীমা (1/1/0001 থেকে 12/31/9999 বনাম 1/1 / 1753-12 / 31/9999) (যদিও অতিরিক্ত পরিসীমা, 1753 সালের পূর্বে, প্রাক্তন ব্যতীত সম্ভবত ব্যবহৃত হবে না, historicalতিহাসিক, জ্যোতির্বিদ্যা সংক্রান্ত, ভূতাত্ত্বিক ইত্যাদি অ্যাপ্লিকেশনগুলিতে)।
1.3। নির্ভুলভাবে .NET এর DateTime
প্রকারের ব্যাপ্তির পরিসরের সাথে মেলে (যদিও মানগুলি লক্ষ্য প্রকারের সীমার মধ্যে থাকে এবং যথাযথ # 2 এর নীচে নির্ভুলতার সাথে অন্য কোনও কোডিং না দিয়ে পিছনে পিছনে রূপান্তরিত হয় অন্যথায় ত্রুটি / রাউন্ডিং ঘটবে)।
1.4। আরও নির্ভুলতা (100 ন্যানোসেকেন্ড ওরফে 0.000,000,1 সেকেন্ড। বনাম 3.33 মিলিসেকেন্ড ওরফে 0.003,33 সেকেন্ড।) (যদিও প্রকৃতির প্রকৌশল / বৈজ্ঞানিক অ্যাপ্লিকেশনগুলিতে অতিরিক্ত নির্ভুলতা সম্ভবত ব্যবহার করা হবে না।)
1.5। যখন অনুরূপ (যেমন 1 মিলিসেক হিসাবে "একই" নয় (যেমন 3.33 মিলিসেক হিসাবে) ইমান আবিদি দাবি করেছেন) যথাযথতা হিসাবে DateTime
কম স্থান (7 বনাম 8 বাইট) ব্যবহার করে, তবে অবশ্যই আপনি হেরে যাবেন নির্ভুলতা বেনিফিট যা সম্ভবত দু'জনের মধ্যে একটি (অন্যটি হ'ল পরিসীমা) সম্ভবত সবচেয়ে অপ্রয়োজনীয় সুবিধাগুলি থাকলেও) ted
- কনস:
2.1। .NET এ প্যারামিটারটি পাস করার সময় SqlCommand
, আপনাকে অবশ্যই উল্লেখ করতে হবে System.Data.SqlDbType.DateTime2
যে আপনি এসকিউএল সার্ভারের DateTime
ব্যাপ্তি এবং / অথবা নির্ভুলতার বাইরে কোনও মান পার করছেন , কারণ এটি ডিফল্ট হয় System.Data.SqlDbType.DateTime
।
2.2। সংখ্যাসূচক মান এবং অপারেটরগুলি ব্যবহার করে এসকিউএল সার্ভার এক্সপ্রেশনগুলিতে নিম্নলিখিতটি / সাথে এটি করার জন্য ভাসমান-পয়েন্ট সংখ্যায় (মিনিটের তারিখের পর থেকে # দিনের) মান রূপান্তরিত / সহজে রূপান্তরিত করা যায় না:
2.2.1। # দিন বা আংশিক দিন যোগ করুন বা বিয়োগ করুন। দ্রষ্টব্য: DateAdd
কাজের সময় হিসাবে ফাংশনটি ব্যবহার করা তুচ্ছ নয় যখন আপনাকে তারিখ-সময়ের সমস্ত অংশ না হলে একাধিক বিবেচনা করতে হবে।
2.2.2। "বয়স" গণনার উদ্দেশ্যে দুটি তারিখ-সময়ের মধ্যে পার্থক্য নিন। দ্রষ্টব্য: আপনি কেবল DateDiff
পরিবর্তে এসকিউএল সার্ভারের ফাংশনটি ব্যবহার করতে পারবেন না , কারণ এটি গণনা করে না কারণ age
বেশিরভাগ লোকেরা আশা করে যে যদি দুটি তারিখের সময়গুলি নির্দিষ্ট ইউনিটের একটি ক্যালেন্ডার / ঘড়ির তারিখের সময়সীমা অতিক্রম করে, এমনকি যদি ক্ষুদ্র ভগ্নাংশের জন্যও হয় যে ইউনিট, এটা পার্থক্য হল যে ইউনিট 1 বনাম 0. উদাহরণস্বরূপ ফিরে আসবেন, DateDiff
এ Day
দুই তারিখ-সময়ের গুলি মাত্র 1 মিলিসেকেন্ডে পৃথক্ 1 বনাম 0 (দিন) ফিরে আসবে যদি ঐ তারিখ-বার বিভিন্ন ক্যালেন্ডারের দিনগুলিতে (যেমন "1999-12-31 23: 59: 59.9999999" এবং "2000-01-01 00: 00: 00.0000000")। একই 1 মিলিসেকেন্ড পার্থক্য তারিখের সময়গুলি যদি সরানো হয় যাতে তারা কোনও ক্যালেন্ডার দিন অতিক্রম না করে Day
, 0 (দিন) এর মধ্যে একটি "ডেটডিফ" ফিরিয়ে দেবে ।
2.2.3। নিতে Avg
কেবল ফিরে আবার "ফ্লোট" রূপান্তর প্রথম এবং তারপর তারিখ-বার (একটি সমষ্টিগত ক্যোয়ারীতে) এর DateTime
।
দ্রষ্টব্য: DateTime2
একটি সংখ্যায় রূপান্তর করতে, আপনাকে নিম্নলিখিত সূত্রের মতো কিছু করতে হবে যা এখনও ধরে নেয় যে আপনার মানগুলি ১৯ year০ সালের চেয়ে কম নয় (যার অর্থ আপনি অতিরিক্ত পরিসরের চেয়ে আরও ২১7 বছর হারাচ্ছেন Note দ্রষ্টব্য: আপনি অতিরিক্ত পরিসরের অনুমতি দেওয়ার জন্য সূত্রটি কেবলমাত্র সামঞ্জস্য করতে সক্ষম হবেন না কারণ আপনি সংখ্যার ওভারফ্লো সমস্যা নিয়ে চলে যেতে পারেন।
25567 + (DATEDIFF(SECOND, {d '1970-01-01'}, @Time) + DATEPART(nanosecond, @Time) / 1.0E + 9) / 86400.0
- উত্স: " https://siderite.dev/blog/how-to-translate-t-sql-datetime2-to.html "
অবশ্যই, আপনি এছাড়াও পারা Cast
থেকে DateTime
প্রথম (এবং প্রয়োজনে ফিরে আবার করতে DateTime2
), কিন্তু আপনি স্পষ্টতা এবং পরিসীমা (সারা বছর পূর্বে 1753) সুবিধাগুলো হারান চাই DateTime2
বনাম DateTime
যা prolly 2 সবচেয়ে বড় এবং একই সময়ে prolly হয় সংক্ষিপ্ত / সম্ভবত "সংযোজন /" বয়স "(বনাম DateDiff
) / Avg
ক্যালকস সুবিধার জন্য ভাসমান-পয়েন্ট সংখ্যাতে (# দিনের) অবধি / সহজ রূপান্তরগুলি হারাতে গেলে কেন এটি ব্যবহার করবেন এমন প্রশ্নটি কমপক্ষে 2 টি সম্ভবত প্রয়োজন যা একটি বড় আমার অভিজ্ঞতা.
বিটিডব্লিউ, Avg
তারিখের সময়গুলি (বা কমপক্ষে হওয়া উচিত) একটি গুরুত্বপূর্ণ ব্যবহারের ক্ষেত্রে। ক) তারিখ-সময়গুলি (একটি সাধারণ ভিত্তির তারিখ-সময়) সময়কাল (একটি সাধারণ অনুশীলন) উপস্থাপনের জন্য ব্যবহৃত হয় তখন গড় সময়কাল পাওয়ার ক্ষেত্রে ব্যবহার ছাড়াও, খ) গড় তারিখের ড্যাশবোর্ড-জাতীয় পরিসংখ্যান প্রাপ্ত করার জন্যও এটি দরকারী সময়টি সারিগুলির একটি ব্যাপ্তি / গোষ্ঠীর তারিখ-সময় কলামে। গ) একটি কলামের মানগুলি পর্যবেক্ষণ / সমস্যা সমাধানের জন্য একটি মান (বা কমপক্ষে স্ট্যান্ডার্ড হওয়া উচিত ) অ্যাড-হক কোয়েরি যা বৈধ / যেহেতু আর বৈধ হতে পারে না এবং / অথবা অবমূল্যায়নের প্রয়োজন হতে পারে প্রতিটি মানের জন্য উপস্থিতি গণনা তালিকাভুক্ত করা এবং (যদি উপলভ্য থাকে) Min
, Avg
এবং Max
সেই মানের সাথে সম্পর্কিত তারিখ-সময় স্ট্যাম্পগুলি।