এসকিউএল সার্ভার দ্বারা সমর্থিত অনেকগুলি ফর্ম্যাট রয়েছে - ক্যাসেট এবং কনভার্টে এমএসডিএন বই অনলাইন দেখুন । এই ফর্ম্যাটগুলির বেশিরভাগ আপনার কী সেটিংসের উপর নির্ভরশীল - তাই এই সেটিংসটি কিছু সময় কাজ করতে পারে - এবং কখনও কখনও না।
এটির সমাধানের উপায়টি হ'ল (সামান্য অভিযোজিত) আইএসও -8601 তারিখের ফর্ম্যাটটি যা এসকিউএল সার্ভার দ্বারা সমর্থিত - এই ফর্ম্যাটটি সর্বদা কাজ করে - আপনার এসকিউএল সার্ভার ভাষা এবং তারিখের বিন্যাস নির্বিশেষে।
আইএসও-8601 বিন্যাস SQL সার্ভার দ্বারা সমর্থিত দুই স্বাদে আসে:
YYYYMMDDশুধু তারিখের জন্য (কোনও সময় অংশ নেই); এখানে নোট করুন: কোন ড্যাশ! , এটা খুব গুরুত্বপূর্ণ! YYYY-MM-DDহয় না আপনার SQL সার্ভার মধ্যে dateformat সেটিংস স্বাধীন ও হবে না সব পরিস্থিতিতে কাজ!
বা:
YYYY-MM-DDTHH:MM:SSতারিখ ও সময় জন্য - নোট এখানে: এই বিন্যাস হয়েছে ড্যাশ (তবে তারা করতে বাদ দেওয়া যেতে), এবং একটি নির্দিষ্ট Tতারিখ এবং আপনার সময় অংশ মধ্যে বিভেদক হিসাবে DATETIME।
এটি এসকিউএল সার্ভার 2000 এবং আরও নতুনর জন্য বৈধ।
সুতরাং আপনার কংক্রিট ক্ষেত্রে - এই স্ট্রিংগুলি ব্যবহার করুন:
insert into table1 values('2012-02-21T18:10:00', '2012-01-01T00:00:00');
এবং আপনার ভাল হওয়া উচিত (দ্রষ্টব্য: এজন্য আপনাকে 12 ঘন্টা-এএম / প্রধানমন্ত্রী বিন্যাসের পরিবর্তে আন্তর্জাতিক 24 ঘন্টা বিন্যাস ব্যবহার করা দরকার )।
বিকল্পভাবে : আপনি যদি এসকিউএল সার্ভার ২০০৮ বা তার থেকেও নতুন হন তবে আপনি DATETIME2ডেটাটাইপও ব্যবহার করতে পারেন (প্লেইনের পরিবর্তে DATETIME) এবং আপনার বর্তমানটি INSERTকোনও সমস্যা ছাড়াই কেবল কাজ করবে! :-) DATETIME2রূপান্তরগুলিতে অনেক ভাল এবং খুব কম পিক - এবং এটি এসকিউএল সার্ভার ২০০৮ এর জন্য তারিখ / সময় ডেটা টাইপ বা যাইহোক নতুনতর।
SELECT
CAST('02-21-2012 6:10:00 PM' AS DATETIME2), -- works just fine
CAST('01-01-2012 12:00:00 AM' AS DATETIME2) -- works just fine
আমাকে কেন জিজ্ঞাসা করবেন না যে এই পুরো বিষয়টি কেন এত জটিল এবং কিছুটা বিভ্রান্তিকর - এটি কেবল এটিই। তবে YYYYMMDDফর্ম্যাটটি সহ, আপনার এসকিউএল সার্ভারের যে কোনও সংস্করণ এবং আপনার এসকিউএল সার্ভারে কোনও ভাষা এবং তারিখের বিন্যাসের জন্য ভাল হওয়া উচিত।