টি-এসকিউএল-তে কীভাবে আমি একটি স্ট্রিংকে তারিখে রূপান্তর করতে পারি?
আমার পরীক্ষার কেসটি হ'ল স্ট্রিং: '24.04.2012'
টি-এসকিউএল-তে কীভাবে আমি একটি স্ট্রিংকে তারিখে রূপান্তর করতে পারি?
আমার পরীক্ষার কেসটি হ'ল স্ট্রিং: '24.04.2012'
উত্তর:
CONVERT(datetime, '24.04.2012', 104)
কৌতুক করা উচিত। আরও তথ্যের জন্য এখানে দেখুন: কাস্ট এবং কনভার্ট (লেনদেন-এসকিউএল)
মাইক্রোসফ্ট এসকিউএল তারিখ ফর্ম্যাট
CONVERT(DateTime, DateField, 104)
ধরে নিই যে ডাটাবেসটি এমএস এসকিউএল সার্ভার 2012 বা ততোধিক, এখানে একটি সমাধান রয়েছে যা কাজ করে। প্রাথমিক বিবৃতিতে ইন-লাইন চেষ্টা-বিশ্লেষণ রয়েছে:
SELECT TRY_PARSE('02/04/2016 10:52:00' AS datetime USING 'en-US') AS Result;
আমরা উত্পাদনের সংস্করণে যা প্রয়োগ করেছি তা এখানে:
UPDATE dbo.StagingInputReview
SET ReviewedOn =
ISNULL(TRY_PARSE(RTrim(LTrim(ReviewedOnText)) AS datetime USING 'en-US'), getdate()),
ModifiedOn = (getdate()), ModifiedBy = (suser_sname())
-- Check for empty/null/'NULL' text
WHERE not ReviewedOnText is null
AND RTrim(LTrim(ReviewedOnText))<>''
AND Replace(RTrim(LTrim(ReviewedOnText)),'''','') <> 'NULL';
ModifiedOn এবং ModifiedBy কলামগুলি কেবল অভ্যন্তরীণ ডাটাবেস ট্র্যাকিংয়ের উদ্দেশ্যে।
এই মাইক্রোসফ্ট এমএসডিএন উল্লেখগুলি দেখুন:
যদিও কনভার্ট জিনিসটি কাজ করে, আপনার আসলে এটি ব্যবহার করা উচিত নয়। আপনার নিজের জিজ্ঞাসা করা উচিত কেন আপনি এসকিউএল-সার্ভারে স্ট্রিংয়ের মানগুলি পার্স করছেন। এটি যদি এককালীন কাজ হয় যেখানে আপনি ম্যানুয়ালি কিছু ডেটা ফিক্স করছেন আপনি সেই ডেটা অন্য সময় পাবেন না, এটি ঠিক আছে, তবে কোনও অ্যাপ্লিকেশন যদি এটি ব্যবহার করে তবে আপনার কিছু পরিবর্তন করা উচিত। "তারিখ" ডেটা টাইপ ব্যবহার করা সবচেয়ে ভাল উপায়। এটি যদি ব্যবহারকারী ইনপুট হয় তবে এটি আরও খারাপ। তারপরে আপনার ক্লায়েন্টে প্রথমে কিছু চেক করা উচিত। আপনি যদি সত্যিই স্ট্রিং মানগুলি পাস করতে চান যেখানে এসকিউএল-সার্ভার একটি তারিখ প্রত্যাশা করে, আপনি সর্বদা আইএসও ফর্ম্যাট ('YYYYMMDD') ব্যবহার করতে পারেন এবং এটি স্বয়ংক্রিয়ভাবে রূপান্তরিত হওয়া উচিত।
তুমি ব্যবহার করতে পার:
SELECT CONVERT(datetime, '24.04.2012', 103) AS Date
রেফারেন্স: কাস্ট এবং কনভার্ট (লেনদেন-এসকিউএল)
CONVERT(DateTime, ExpireDate, 121) AS ExpireDate
যা প্রয়োজন তা করবে, ফলাফল:
2012-04-24 00:00:00.000