2

我正在处理一个 Excel 插件,从 SQL Server 数据库中检索数据并将其插入 Excel。

在数据库中我有一个日期2013-06-01(YYYY-MM-DD)

使用 读取数据库时SqlDataReader,使用以下命令:

myReader.GetValue(c)

返回06/01/2013(DD-MM-YYYY),然后将 when 存储在 Excel 中,以 6 作为日,1 作为月数

任何想法可能会发生什么?

谢谢

4

2 回答 2

2

这可能是关于本地化的问题。
您既可以为 SQL 连接设置本地化,也可以为您正在使用的系统设置本地化,甚至可以设置 excel 中的列规范。
我最好的猜测是检查设置是否正常。

于 2013-07-10T09:03:15.797 回答
0

此行为似乎是由 SQL Server 和 Microsoft Excel 之间的不同本地化配置产生的。

如果您无法更改此配置,我建议您对用于检索数据的 SQL 语句使用CAST()or CONVERT()

例如:

SELECT CONVERT(DATETIME, Date_Column, 103) AS UsingConvertFrom_DDMMYYYY
FROM TABLE_NAME

使用这种方法(这不是最好的),您将强制 DataReader.GetValue 的值使用“解析良好”的原始值。

您可以查看MSDN文档以获取更多详细信息。

于 2013-07-10T09:09:38.463 回答