我正在开发Excel,从SQL Server数据库中检索数据并将其插入Excel。
在数据库中,我有一个日期2013-06-01
(YYYY-MM-DD)
使用SqlDataReader
从数据库读取时,请执行以下命令:
myReader.GetValue(c)
返回06/01/2013
(DD-MM-YYYY),然后存储在Excel中,当天为6,月份为1
任何想法可能会发生什么?
由于
答案 0 :(得分:2)
这可能是本地化的问题 您可以将本地化设置为SQL连接和您正在使用的系统,甚至是excel中的列规范 我最好的猜测是检查设置是否正常。
答案 1 :(得分:0)
此行为似乎是由SQL Server和Microsoft Excel之间的其他本地化配置产生的。
如果您无法更改此配置,建议您使用CAST()
或CONVERT()
作为用于检索数据的SQL语句。
例如:
SELECT CONVERT(DATETIME, Date_Column, 103) AS UsingConvertFrom_DDMMYYYY
FROM TABLE_NAME
使用此方法(不是最佳),您强制DataReader.GetValue的值使用原始值“解析好”。
您可以查看MSDN文档以获取更多详细信息。