.Net Framework 與 SQL Server 2005 混亂的時間最大最小值
之前才跟 dotjum 聊到 Microsoft 在 DateTime 還有 SQL Server 2005 的最小最大時間非常地不一致,沒想到果然有人也碰過相同的困擾。
參考:
- C# DateTime.MinValue is not the same as SqlDateTime.MinValue
- Caution When passing Null or DateTime into Store Procedure
這其實也是我一直跟很多人講過的一個觀念:就憑我們的資質,我們遇到的 IT 技術問題絕大多數不可能在這世界上第一次遇到的。換句話說,絕大多數的情況下,我們所遇到的 IT 技術問題,在這世界上某個人一定遇到並且已經解決了!簡言之,善用關鍵字搜尋,解決問題。
.Net Framewrok 中,
DateTime.MinValue => 0001/01/01 00:00:00
SqlDateTime.MinValue.Value => 1753/01/01 00:00:00SQL Server 2005 中,
DateTime 最小值 => 1753/01/01 00:00:00
SmallDateTime 最小值 => 1900/01/01 00:00:00
.Net Framewrok 中,
SQL Server 2005 中,
DateTime.MaxValue => 9999/12/31 23:59:59.999
SqlDateTime.MaxValue.Value => 9999/12/31 23:59:59.997
DateTime 最大值 => 9999/12/31 23:59:59.997
唉!是不是有點混亂呢!稍微處理不慎,可能就會有 Overflow 的問題會產生。