linq中的日期格式问题

时间:2013-11-02 06:05:47

标签: linq linq-to-sql

我正在将数据从excel导入到SQL表中。 excel中的日期格式为20090109,导入后的数据以2.00901e + 007格式存储。

在sql查询中,它以正确的格式返回日期。但在linq 2.00901e + 007格式中无效。

如何将2.00901e + 007更改为ddMMyyyy?

1 个答案:

答案 0 :(得分:0)

您获得了正确的值。您的问题是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")