স্ট্রিং লিটারেলের জন্য আরও একটি ভাষা-স্বতন্ত্র পছন্দ হ'ল আন্তর্জাতিক মানের আইএসও 8601 ফর্ম্যাট "YYYY-MM-DDThh মিমি: এসএস"। আমি ফর্ম্যাটটি পরীক্ষা করতে নীচের এসকিউএল কোয়েরিটি ব্যবহার করেছি এবং এটি সত্যই sys.syslanguages এর সমস্ত এসকিউএল ভাষায় কাজ করে :
declare @sql nvarchar(4000)
declare @LangID smallint
declare @Alias sysname
declare @MaxLangID smallint
select @MaxLangID = max(langid) from sys.syslanguages
set @LangID = 0
while @LangID <= @MaxLangID
begin
select @Alias = alias
from sys.syslanguages
where langid = @LangID
if @Alias is not null
begin
begin try
set @sql = N'declare @TestLang table (langdate datetime)
set language ''' + @alias + N''';
insert into @TestLang (langdate)
values (''2012-06-18T10:34:09'')'
print 'Testing ' + @Alias
exec sp_executesql @sql
end try
begin catch
print 'Error in language ' + @Alias
print ERROR_MESSAGE()
end catch
end
select @LangID = min(langid)
from sys.syslanguages
where langid > @LangID
end
মাইক্রোসফ্ট টেকনেটের স্ট্রিং লিটারাল ডেট এবং টাইম ফর্ম্যাট বিভাগ অনুসারে , স্ট্যান্ডার্ড এএনএসআই স্ট্যান্ডার্ড এসকিউএল তারিখ ফর্ম্যাট "YYYY-MM-DD hh: mm: ss" "মাল্টি-ল্যাঙ্গুয়েজ" হওয়ার কথা। তবে, একই কোয়েরিটি ব্যবহার করে, সমস্ত এসকিউএল ভাষায় এএনএসআই ফর্ম্যাট কাজ করে না।
উদাহরণস্বরূপ, ডেনিশ ভাষায়, আপনি নিম্নলিখিতগুলির মতো অনেকগুলি ত্রুটি পাবেন:
ডেনিশ ভাষায় ত্রুটি ডেনিশ একটি তারিখের ডেটা টাইপটিতে একটি ভার্চার ডেটা ধরণের রূপান্তরকরণের ফলে সীমার মান ছাড়ানো হয়।
আপনি যদি এসকিউএল সার্ভারে চলার জন্য সি # তে একটি ক্যোয়ারী তৈরি করতে চান এবং আইএসও 8601 ফর্ম্যাটে আপনাকে একটি তারিখ পাস করতে হবে তবে বাছাইযোগ্য "গুলি" ফর্ম্যাট স্পেসিফায়ার ব্যবহার করুন :
string.Format("select convert(datetime2, '{0:s}'", DateTime.Now);