মাইএসকিউএল তারিখ / সময় মানকে সিস্টেম.ডেটটাইমে রূপান্তর করতে অক্ষম


86

আমি এই ত্রুটি পেয়েছি:

মাইএসকিউএল তারিখ / সময় মানকে সিস্টেম.ডেটটাইমে রূপান্তর করতে অক্ষম

যখন আমি কোনও মাইএসকিউএল ডাটাবেস থেকে ডেটা আনার চেষ্টা করছি। আমার আমার মাইএসকিউএল ডাটাবেজে তারিখের ডেটাটাইপ রয়েছে। তবে এটি আমার ডেটাটেবলে পুনরুদ্ধার করার সময়, এটি উপরে ত্রুটিটি পেয়েছে।

আমি এটা কিভাবে ঠিক করবো?


উত্তর:


51

যদি আমি "মাইএসকিউএল তারিখ / সময় মানকে সিস্টেমে রূপান্তর করতে অক্ষম" এর জন্য গুগল করি। এটা কি আপনার প্রসঙ্গ?

প্রস্তাবিত একটি সমাধান হ'ল:

এটি কোনও বাগ নয়, প্রত্যাশিত আচরণ। দয়া করে সংযুক্ত বিকল্পগুলির অধীনে ম্যানুয়ালটি পরীক্ষা করুন এবং সংযুক্ত ছবিগুলির মতো সত্য "জিরো ডেটটাইমকে মঞ্জুরি দিন" সেট করুন এবং ত্রুটিটি চলে যাবে।

তথ্যসূত্র: http://bugs.mysql.com/bug.php?id=26054


4
আমি তারিখ / সময় কলামগুলিতে আপনার ডেটা হিসাবে '0000-00-00 00:00:00' ব্যবহার না করার পরামর্শ দিই। বরং আপনার ডেটাতে একটি আসল তারিখের মানগুলি ব্যবহার করুন - যদি আপনি। নেট ব্যবহার করেন। তবে মাইএসকিউএল যে কোনও তারিখ পরিচালনা করতে পারে। আপনার সমস্ত তারিখ / সময় মানগুলি স্ক্যান করা উচিত।
বিমল পাউদেল

215

আপনাকে অবশ্যই Convert Zero Datetime=Trueআপনার সংযোগের স্ট্রিংয়ে যুক্ত করতে হবে , উদাহরণস্বরূপ:

server=localhost;User Id=root;password=mautauaja;Persist Security Info=True;database=test;Convert Zero Datetime=True

4
ধন্যবাদ! এফওয়াইআই: এটি মাইএসকিউএল সংযোগ স্ট্রিংয়ে চলেছে - এসকিউএল সার্ভার সংযোগের স্ট্রিং নয়।
jp2code

আমার সময় বাঁচিয়েছে কবজির মতো কাজ করেছেন
নল পয়েন্টার

+1 - নিখুঁত! আমার শূন্য তারিখের সময় ছিল কারণ যখন কলামটি টেবিল মাইএসকিউএল শূন্য তারিখের সময়টিতে লেখাটি পূরণ করছিল না। আমি এটা এত 0970-01-01.Thanks তোমার জন্য এখন থেকে পরিবর্তন পছন্দ করা
Drako

21

আমি উভয় যোগ Convert Zero Datetime=True& Allow Zero Datetime=Trueএবং এটি কাজ করে জরিমানা


3

ডেটটাইম মানটি স্ট্রিং হিসাবে নীচে টানুন এবং একটি করুন DateTime.ParseExact(value, "ddd MMM dd hh:mm:ss yyyy", culture, styles);আপনার কেবলমাত্র ডাটাবেস থেকে ফিরে আসার তারিখের জন্য তারিখের ফর্ম্যাট সেট করতে হবে। সম্ভবত এটি yyyy-MM-dd HH:mm:ss। কমপক্ষে আমার জন্য হয়।

এখানে আরও তথ্য চেক করুন DateTime.ParseExact



2

আমিও একই সমস্যার মুখোমুখি হয়েছি এবং কলামগুলির নাম এবং এর প্রকারগুলি পেয়েছি। তারপরে টেবিলের নাম থেকে (চার হিসাবে কল_নাম) কাস্ট করুন। এই উপায় থেকে আমি '0000-00-00 00:00:00' হিসাবে সমস্যাটি পাই তবে আমি বৈধ তারিখ এবং সময় হিসাবে আপডেট করি ত্রুটিটি আমার মামলার জন্য দূরে যায়।


1

আপনি MySQL দ্বারা ব্যবহৃত তারিখ এবং সময়টির সাথে অ্যাপ্লিকেশনটিকে পুরোপুরি সামঞ্জস্য করতে পারেন। অ্যাপ্লিকেশন রানটাইম চললে এই কোডটি সরবরাহ করুন। প্রথমে অ্যাপ্লিকেশন ইভেন্টগুলিতে যান। সরঞ্জামের তালিকায়

  1. প্রকল্পে যান
  2. প্রকল্পের সম্পত্তি
  3. অ্যাপ্লিকেশন ট্যাবটি নির্বাচন করুন
  4. অ্যাপ্লিকেশন ইভেন্টগুলি দেখুন

এটি একটি নতুন ফাইল খুলবে। এই ফাইলটিতে অ্যাপ্লিকেশনের শুরুতে ব্যবহৃত কোড রয়েছে।

এই নতুন ফাইলটিতে এই কোডটি লিখুন:

 Partial Friend Class MyApplication

    Private Sub MyApplication_Startup(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup
        My.Application.ChangeCulture("en")
        My.Application.ChangeUICulture("en")
        My.Application.Culture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd"
        My.Application.Culture.DateTimeFormat.LongDatePattern = "yyyy-MM-dd"
        My.Application.Culture.DateTimeFormat.LongTimePattern = "HH:mm:ss"
        My.Application.Culture.DateTimeFormat.ShortTimePattern = "HH:mm:ss"
    End Sub


End Class

1

সংযোগের স্ট্রিং পরিবর্তন করার পরিবর্তে, আপনি যদি বিষয়টিকে ক হিসাবে কাস্ট করতে পারেন তবে আপনাকে নির্ধারণ করতে সহায়তা করতে আপনি বস্তুর IsValidDateTimeসম্পত্তিটি ব্যবহার করতে পারেন ।MySqlDateTimeDateTime

আমার একটি দৃশ্য ছিল যেখানে আমি একটি "আপডেটটাইম" কলাম থেকে ডেটা লোড করার চেষ্টা করছিলাম যা সারিটিতে আপডেট উপস্থিত থাকলে কেবল স্পষ্টভাবে সেট করা হয়েছিল (ইনসার্টটাইমের বিপরীতে যা সর্বদা সেট ছিল)। এই ক্ষেত্রে, আমি MySqlDataReader.GetMySqlDateTimeপদ্ধতিটি এর মতো ব্যবহার করেছি:

using (MySqlDataReader reader = await MySqlHelper.ExecuteReaderAsync(...))
{
    if (await reader.ReadAsync())
    {
        DateTime? updateTime = reader.GetMySqlDateTime("UpdateTime").IsValidDateTime ? (DateTime?)reader["UpdateTime"] : null;
    }
}

0

যদি "শূন্যের ডেটটাইম = সত্য" কাজ না করে তবে নীচের দ্রবণগুলি ব্যবহার করুন: -

এটি আপনার সংযোগের স্ট্রিংয়ে যুক্ত করুন: "শূন্য তারিখের সময়কে অনুমতি দিন = না" - যা প্রকারের কাস্ট পুরোপুরি কাজ করে।


0

স্টিমুলসফট রিপোর্টে সংযোগের স্ট্রিংয়ে এই প্যারামিটারটি যুক্ত করুন (ডেটাসোর্স-> সম্পাদনাতে ডান ক্লিক করুন)

Convert Zero Datetime=True;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.