আমাকে একটি অ্যাজুরি এসকিউএল ডাটাবেসে একটি অন-প্রাঙ্গনে এসকিউএল সার্ভার 2017 ডাটাবেস স্থানান্তরিত করতে হবে এবং আমি বেশ কয়েকটি চ্যালেঞ্জের মুখোমুখি হচ্ছি যেহেতু বেশ কিছুটা সীমাবদ্ধতা অতিক্রম করতে হবে।
বিশেষত, যেহেতু একটি অ্যাজুরি এসকিউএল ডাটাবেস কেবল ইউটিসি সময়ে (সময় অঞ্চল নেই) কাজ করে এবং আমাদের স্থানীয় সময় প্রয়োজন তাই আমাদের ডাটাবেসের যে কোনও GETDATE()
জায়গায় ব্যবহারের পরিবর্তন করতে হবে , যা আমার প্রত্যাশার চেয়ে বেশি কাজ প্রমাণিত হয়েছে।
স্থানীয় সময় পাওয়ার জন্য আমি একটি ব্যবহারকারী সংজ্ঞায়িত ফাংশন তৈরি করেছি যা আমার সময় অঞ্চলের জন্য সঠিকভাবে কাজ করে:
CREATE FUNCTION [dbo].[getlocaldate]()
RETURNS datetime
AS
BEGIN
DECLARE @D datetimeoffset;
SET @D = CONVERT(datetimeoffset, SYSDATETIMEOFFSET()) AT TIME ZONE 'Pacific SA Standard Time';
RETURN(CONVERT(datetime,@D));
END
আমি যে সমস্যাটি নিয়ে সমস্যায় পড়ছি তা হ'ল GETDATE()
প্রতিটি ভিউ, সঞ্চিত পদ্ধতি, গণিত কলাম, ডিফল্ট মান, অন্যান্য সীমাবদ্ধতা ইত্যাদিতে এই ফাংশনটি দিয়ে পরিবর্তন করা actually
এই পরিবর্তনটি কার্যকর করার সর্বোত্তম উপায় কী হবে?
আমরা পরিচালিত দৃষ্টান্তগুলির সার্বজনিক পূর্বরূপে আছি । এটির সাথে এখনও এটি একই সমস্যা রয়েছে GETDATE()
, সুতরাং এটি এই সমস্যার সাথে সহায়তা করে না। অ্যাজুরে সরানো একটি প্রয়োজনীয়তা। এই ডাটাবেসটি সর্বদা এই সময় অঞ্চলে ব্যবহৃত হয় (এবং ব্যবহৃত হবে)।