2012-07-18 111 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進行這種任務,因爲這樣可以更好地控制數據轉換。

相關問題