2012-07-18 65 views
0

我试图将excel数据导入到sql server数据库。一切工作正常,除了一列在Excel中的格式是日期时间和我的数据库中的数据类型是时间。当我尝试插入数据时,无法将日期时间转换为时间。将excel中的datetime格式转换为插入sql server时的时间格式

我的代码是:

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); 

我试图用 “选择CON1,COL2,COL3,转换(时间,COL4)从COL4 [工作表Sheet1 $]” BT的转换功能是行不通的。

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

回答

0
  1. 如果临时表是一个选项,你可以使用Excel的文本日期转换为字符串(COL4, “DD MMMM YYYY HH:MM:SS”)。一旦数据在临时表中,您可以编写适当的SQL语句插入到正确的表中。

  2. 我会使用SSIS进行这种任务,因为这样可以更好地控制数据转换。

相关问题