程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SqlDateTime溢出該怎樣處理

SqlDateTime溢出該怎樣處理

編輯:MSSQL

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。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved