問題:
項目中為了在時間上保持一致性,將所有時間都轉化為了UTC時間。
其中有一段SqlDateTime.MinValue的代碼,由於疏忽將其轉為UTC時間後導致了
"SqlDateTime溢出。必須介於 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之間。"
原因:
數據庫中的dateTime類型,最小值是 1/11753 12:00:00,而當SqlDateTime.MinValue轉換為UTC的時間後,超出了這個最小值范圍。所以導致了這 個錯誤。
總結:
在.NET FrameWork中,DateTime類型的最小值是1/1/0001 0:00:00,而這個值很明顯是超過了數據庫的dateTime類型的限制。所以在和數據庫操作相關的字段要使用SqlDateTime類型,而不應該使用DateTime。