0

ExcelデータをSQLサーバーデータベースにインポートしようとしています。Excelの形式がdatetimeで、データベースのデータ型がtimeである1つの列を除いて、すべて正常に機能します。データを挿入しようとしたときに、日時を時刻に変換できませんでした。

私のコードは次のとおりです。

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$]」を使用しようとしましたが、変換機能は機能しませんでした。

誰でもこれらについて私を助けることができますか? ありがとう。

4

1 に答える 1

0
  1. ステージングテーブルがオプションの場合、TEXT(col4、 "dd mmmm yyyy hh:mm:ss")を使用してExcelの日付を文字列に変換できます。データがステージングテーブルに配置されたら、適切なSQLステートメントを記述して正しいテーブルに挿入できます。

  2. この種のタスクにはSSISを使用します。これにより、データ変換をより細かく制御できるからです。

于 2012-07-18T03:46:48.710 に答える