0

我正在尝试将 excel 数据导入 sql server 数据库。除了excel中的格式是日期时间而我的数据库中的数据类型是时间的一列之外,一切正常。当我尝试插入数据时,它无法将日期时间转换为时间。

我的代码是:

OleDbCommand exclCmd = new OleDbCommand("select * from [Sheet1$]", exclConnection);
exclConnection.Open(); 
OleDbDataReader exclReader = exclCmd.ExecuteReader(); 
SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection); 
sqlBulk.DestinationTableName = "test_excel"; 
sqlBulk.ColumnMappings.Add("col1", "col1");
sqlBulk.ColumnMappings.Add("col2", "col2"); 
sqlBulk.ColumnMappings.Add("col3", "col3"); 
sqlBulk.ColumnMappings.Add("col4", "col4"); 
sqlBulk.WriteToServer(exclReader);

我尝试使用“select con1, col2, col3, convert(time,col4) as col4 from [Sheet1$]”bt 转换功能不可用。

任何人都可以帮助我解决这些问题吗?谢谢。

4

1 回答 1

0
  1. 如果临时表是一个选项,您可以使用 TEXT(col4,"dd mmmm yyyy hh:mm:ss") 将 Excel 日期转换为字符串。一旦数据在临时表中,您可以编写适当的 SQL 语句插入到正确的表中。

  2. 我会使用 SSIS 来完成这类任务,因为它可以更好地控制数据转换。

于 2012-07-18T03:46:48.710 回答