儘管Access中的Date/Time
字段類型被定義爲「年份100和9999之間的日期或時間值」(ref),但Access ODBC驅動程序在處理1753年1月1日之前的日期時似乎遇到問題。能夠確認在RODBC和.NET System.Data.Odbc下使用Microsoft Access Driver (*.mdb, *.accdb)
。
1753-01-01
的訪問是由訪問ODBC返回1753-01-01
(正確的),但
1752-12-31
的訪問是由訪問ODBC爲1752-12-30
(錯誤)
而且,你已經找到返回的差異變得更大我們再往前追溯。
也有試圖插入時,涉及與訪問ODBC問題Microsoft知識庫文章here之前1753
日期很可能不是巧合,1753年1月1日是儘早爲SQL Server中的DATETIME
列類型。在該日期的意義更多詳細信息,請參閱
What is the significance of 1/1/1753 in SQL Server?
只有一個Date/Time
在訪問類型,所以我們可以將值不能轉換爲SQL Server中類似DATETIME2
。因此,最佳解決方法可能是使用Format()
將日期值轉換爲問題中提到的文本。
還值得一提的是,訪問OLEDB提供商(Microsoft.ACE.OLEDB.12.0)沒有表現出與日期同樣的問題之前,1753
難道這是關係到公曆?差異太大。最近的日期會發生什麼(即20世紀) –
我認爲你是對的!我檢查了更新的日期,這是正確的。 –
但17世紀和18世紀有錯誤,但有變化:1686年16天; 6天1732.這很奇怪。 –