我正在将数据从 excel 导入 SQL 表。excel中的日期格式为20090109,导入后数据存储为2.00901e+007这种格式。
在 sql 查询中,它以正确的格式返回日期。但在 linq 2.00901e+007 格式中不起作用。
如何将 2.00901e+007 更改为 ddMMyyyy?
我正在将数据从 excel 导入 SQL 表。excel中的日期格式为20090109,导入后数据存储为2.00901e+007这种格式。
在 sql 查询中,它以正确的格式返回日期。但在 linq 2.00901e+007 格式中不起作用。
如何将 2.00901e+007 更改为 ddMMyyyy?
你得到正确的值。您的问题是 Excel 单元格格式。Excel 认为 '20090109' 是一个数字,然后将其转换为 exp 格式:2.00901e+007。
您可以将excel单元格格式设置为文本:
worksheet.get_Range("A1").NumberFormat = "@";
或者您可以在添加到 Excel 之前在您的数字前面加上一个 '。
如果您不想将 excel 单元格格式化为文本,则将您的 sql 返回值转换为 DateTime。设置单元格编号格式"ddMMyyyy"
更正:
对不起,我的误解。我假设您将数据从 SQL 导入 Excel。似乎您没有将从 Excel 读取的值转换为 DateTime。
string Value = "Value read from Excel";
DateTime dt = DateTime.ParseExact(Value, "ddMMyyyy", null);
然后,您可以使用 DateTime 值输入 SQL:
dt.ToString("ddMMyyyy")