1. 程式人生 > >SqlDateTime 溢位。必須介於 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之間的解決辦法

SqlDateTime 溢位。必須介於 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之間的解決辦法

公司專案在用一個框架,封裝了資料庫的常用操作,model.Insert()  (model就是實體類)就可以往資料庫插入資料,當實體類中由Datetime型別時,未被賦值,預設值是0001/1/1 0:00:00,而資料庫中datetime型別支援的 範圍是1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之間插入資料的時候出現錯誤,

解決辦法:有時候DateTime型別的資料我們在插入之前不會賦值,比如deleteTime屬性,常常是在做邏輯刪除的時候才賦值,

但不賦值儲存資料時出錯,我們可以將將DataeTime的值儲存為資料庫datetime型別支援的最小值,

可以用System.Data.SqlTypes.SqlDateTime.MinValue的值賦給System.DateTime型別,

SqlDateTime的MinValue和Sql中DateTime的範圍吻合

System.Data.SqlTypes.SqlDateTime.MinValue 直接賦值給 System.DateTime型別的變數會出現錯誤

我們可以使用Convert.ToDateTime來進行轉換。

DateTime deleteDate=Convert.ToDateTime(System.Data.SqlTypes.SqlDateTime.MinValue.ToString())