使用SqlBulkCopy将DateTime另存为数值

时间:2013-06-23 09:04:40

标签: c# asp.net interop sqlbulkcopy

我正在使用SqlBulkCopy将只读Excel工作表保存到预定义的SQL表中 工作表中有多个日期列,但并非所有行都具有日期值(空和'#') 相应的列类型是varchar(20)而不是smalldatetime,否则我会收到无法转换数据的错误。

运行SqlBulkCopy后,日期将以我无法弄清楚的模式保存为数值。
例如:
2010年12月31日保存为40543
31.13.2011保存为40908
30.6.2011保存为40724

现在我必须在网络表单中提供日期。数字值不会打扰我,只要我可以将它们转换回日期格式以在GridView中呈现,但我不知道如何。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

尝试运行此查询:

SELECT CAST(CAST(YourVarcharDateColumn AS int) AS DateTime) FROM YourTable

答案 1 :(得分:0)

我使用了以下内容:

DateTime.FromOADate(num).ToShortDateString();

其中num是日期的数值