SqlDateTime溢出該怎樣處理。本站提示廣大學習愛好者:(SqlDateTime溢出該怎樣處理)文章只能為提供參考,不一定能成為您想要的結果。以下是SqlDateTime溢出該怎樣處理正文
毛病湧現:導入數據時湧現“SqlDateTime 溢出。必需介於 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之間。”
湧現這類成績多半是由於你拔出或許更新數據庫時datetime字段值為空默許拔出0001年01月01日形成datetime類型溢出。
緣由剖析:
關於DateTime,在將DateTime類型,拔出到數據庫的時刻,最輕易湧現的一種毛病:“SqlDateTime 溢出。必需介於 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之間”緣由是我們在取DateTime.MinValue的值,並拔出到數據庫的時刻,DateTime.MinValue值規模和數據庫DateTime類型數據規模紛歧致形成的。數據庫中,DateTime類型字段,最小值1/1/1753 12:00:00,而.NET Framework中,DateTime類型,最小值為1/1/0001 0:00:00,明顯,超越了Sql的值的最小規模,招致數據溢出的毛病。
處理辦法:
應用System.Data.SqlTypes.SqlDateTime.MinValue替換System.DateTime類型,如許SqlDateTime的MinValue和Sql中DateTime的規模吻合,就不會再湧現以上的毛病了。
然則假如直接將System.Data.SqlTypes.SqlDateTime.MinValue 賦值給 System.DateTime類型的變量會湧現以下毛病:毛病 86 沒法將類型“System.Data.SqlTypes.SqlDateTime”隱式轉換為“System.DateTime”。存在一個顯式轉換(能否缺乏強迫轉換?) 我們可以采取Convert.ToDateTime來停止強迫轉換。
附:SQLServer數據庫的DateTime默許值為 1900/1/1 00:00:00,假如拔出null值,會默許為1900/1/1 00:00:00。