GETUTCDATE () - 2 বনাম তারিখ (d, -2, GETUTCDATE ())


13

আমি ভাবছিলাম যে নিম্নলিখিত দুটি পদ্ধতির মধ্যে পার্থক্য কী:

 GETUTCDATE()-2  

এবং

  DATEADD(d,-2,GETUTCDATE())

আমার ধারণা DATEADDসঠিক পদ্ধতিটি ব্যবহার করা, তবে কেন ভাবছিলাম?

উত্তর:


14

সেখানে কোনও আসল পার্থক্য নেই, তবে আপনি যখন DATETIME2মানগুলি বা মানগুলি ফেরত দেয় এমন ফাংশনগুলি ব্যবহার শুরু করেন DATETIME2, আপনি ত্রুটি পাবেন।

SELECT SYSDATETIME() - 1 AS [Incompatible]

এমএসজি 206, স্তর 16, রাজ্য 2, লাইন 17 অপেরাড ধরণের সংঘর্ষ: ডেটটাইম 2 সংখ্যার সাথে সামঞ্জস্যপূর্ণ নয়

এগুলির জন্য, আপনাকে তারিখ গণিতের ফাংশনগুলি ব্যবহার করতে হবে।

SELECT DATEADD(DAY, -1, SYSDATETIME()) AS [Compatible]

অ্যারন বার্ট্র্যান্ড তার বাজে অভ্যাস থেকে কিক সিরিজটিতে সংক্ষেপে এই বিষয়ে কথা বলেছেন speaks


8

অন্যান্য উত্তর এক দাবী পক্ষান্তরে উভয় অপশন আনুষ্ঠানিকভাবে সমর্থিত এবং নথিভুক্ত SQL সার্ভার দ্বারা: datetime - numberএটা না অনির্ধারিত আচরণ।

এর বড় সুবিধা

DATEADD(d, -2, GETUTCDATE())

এটি স্ব-ডকুমেন্টিংয়ের সত্য : এটির উদ্দেশ্য অবিলম্বে সুস্পষ্ট।

GETUTCDATE() - 2অন্যদিকে, datetime - numberঅপারেশনটির সংজ্ঞা জেনে পাঠকের উপর নির্ভর করে । হ্যাঁ, এটি বর্তমানে আইডোমেটিক টি-এসকিউএল হতে পারে তবে এটি যে আর আর সমর্থিত নয় তার থেকে datetime2বোঝা যায় যে এসকিউএল সার্ভার বিকাশকারীদের ভবিষ্যতের প্রজন্ম আর এর সাথে পরিচিত হতে পারে না।


এটা আরো স্পষ্টভাবে এখানে বিবৃত আছে: গাণিতিক অপারেটর (লেনদেন এসকিউএল) " প্লাস (+ +) এবং বিয়োগ (-) অপারেটরদের এছাড়াও গাণিতিক অপারেশন সম্পাদন ব্যবহার করা যেতে পারে DATETIME এবং smalldatetime মান। "
ypercubeᵀᴹ

@ ইয়পারক्यूबᵀᴹ: প্রথম লাইন - (বিয়োগ) (লেনদেন-এসকিউএল) আরও সুস্পষ্ট একক (দিন): "দুটি সংখ্যা বিয়োগ করে (একটি গাণিতিক বিয়োগ অপারেশন অপারেটর)। একটি সংখ্যা থেকে কয়েক দিনের বিয়োগও করতে পারে । "
হেইনজি

হ্যাঁ আমি এটা দেখেছি এবং তারপরে যে পরে "তারিখ, সময়, তারিখের সময় 2, বা ডেটটাইমসেট ডেটা টাইপ ব্যবহার করা যাবে না।" সুতরাং প্রথম বাক্যে "তারিখ" এর অর্থ হ'ল নিষিদ্ধ ব্যতীত যে কোনও তারিখ / সময় টাইপ (কেবলমাত্র ডেটটাইম এবং স্মার্ট ডেটটাইম, মূলত ডেটটাইম টাইপ যা ২০০৮ (?) সংস্করণের পূর্বে বিদ্যমান ছিল) যা যুক্ত dateহয়েছিল। এটা কিছুটা অগোছালো।
ypercubeᵀᴹ

সম্ভবত আপনি নিজের উত্তরে এটি যোগ করতে পারেন। এই অপারেটরটি নতুন ধরণের সমর্থন করে না এমনটি প্রমাণ করে যে এটি কেবল পশ্চাদপদ সামঞ্জস্যের কারণে রাখা হয়েছিল।
ypercubeᵀᴹ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.