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