2013-04-13 78 views

回答

4

在.NET DATETIME2和DateTime既地圖爲System.DateTime所以沒有任何轉換。問題來自您的數據庫如何處理這兩種數據類型。例如,MSSQL以不同的方式處理它們。在MSSQL中DATETIME支持1753/1/1至9999/12/31,而DATETIME2支持0001/1/1至9999/12/31。

這意味着如果你正在閱讀null值了從DATETIME2列的數據庫,你會得到0001/1/1其中最絕的是一個徹頭徹尾的範圍值。

.NET爲您提供了一些幫助,您可以在這裏閱讀它http://msdn.microsoft.com/en-us/library/bb675168.aspx

確保您使用的是SqlDb類型,並且如果您使用的是數據網格,請確保您的列正確使用typeof

new DataColumn("myDate", typeof(DateTime)) 
+0

這不是錯誤的原因,因爲在上面*提供的代碼中,null * log *日期默認使用'DateTime.Now'*。 'DateTime.Now'應該永遠是一個SMALLDATETIME字段一個有效的值(除非你設置您的PC時鐘回300年),但我目前遇到一模一樣的錯誤,而試圖只需保存的「DateTime.Now的價值{ 2013年4月10日12:49:00}到SQL SmallDateTime字段中。令人沮喪的是,我無法在SO上的任何地方找到正確的答案。 –

相關問題