我正在使用Excel添加,從SQL Server數據庫檢索數據並將其插入到Excel中。SQL數據讀取器返回錯誤日期
在我有約會2013-06-01
(YYYY-MM-DD)
使用SqlDataReader
從數據庫讀取數據時,下面的命令的數據庫:
myReader.GetValue(c)
返回06/01/2013
(DD-MM-YYYY ),然後在Excel中存儲時,以6爲日期,1爲月份編號
任何想法可能會發生什麼?
謝謝
我正在使用Excel添加,從SQL Server數據庫檢索數據並將其插入到Excel中。SQL數據讀取器返回錯誤日期
在我有約會2013-06-01
(YYYY-MM-DD)
使用SqlDataReader
從數據庫讀取數據時,下面的命令的數據庫:
myReader.GetValue(c)
返回06/01/2013
(DD-MM-YYYY ),然後在Excel中存儲時,以6爲日期,1爲月份編號
任何想法可能會發生什麼?
謝謝
此行爲似乎是由SQL Server和Microsoft Excel之間的不同本地化配置產生的。
如果您無法更改此配置,我建議您使用CAST()
或CONVERT()
作爲您用於檢索數據的SQL語句。
在例如:
SELECT CONVERT(DATETIME, Date_Column, 103) AS UsingConvertFrom_DDMMYYYY
FROM TABLE_NAME
使用此方法(即不是最好的),你是迫使DataReader.GetValue的價值使用原始值「以及解析」。
您可以查看MSDN文檔瞭解更多詳情。
這可能是一個關於本地化的問題。
您既可以將本地化設置爲SQL連接以及您正在使用的系統,甚至可以將excel中的列規範設置爲。
我最好的猜測是檢查設置是否正常。
什麼**數據類型**是您的SQL Server列?它應該是'DATE'或'DATETIME',然後你應該能夠正確地使用'myReader.GetDateTime(c)' –
來閱讀它的日期時間,myReader.GetDateTime(c)仍然返回錯誤的值06/01/2013 – Karl
當你把它放入excel中時,你能不能把datetime重新格式化爲一個字符串:myReader.GetDateTime(c).ToString(「yyyy-MM-dd」); – BaconSah