插入到SQL Server时,将excel中的datetime格式转换为时间格式

时间:2012-07-18 03:30:53

标签: c# excel oledb

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

我的代码是:

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)作为[Sheet1 $]中的col4”,但转换功能无法使用。

任何人都可以帮助我吗?感谢。

1 个答案:

答案 0 :(得分:0)

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

  2. 我会将SSIS用于此类任务,因为这样可以更好地控制数据转换。