Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 插入sql server时,将excel中的日期时间格式转换为时间格式_C#_Excel_Oledb - Fatal编程技术网

C# 插入sql server时,将excel中的日期时间格式转换为时间格式

C# 插入sql server时,将excel中的日期时间格式转换为时间格式,c#,excel,oledb,C#,Excel,Oledb,我正在尝试将excel数据导入sql server数据库。除了excel中的格式为datetime、数据库中的数据类型为time的一列之外,所有内容都可以正常工作。当我尝试插入数据时,无法将日期时间转换为时间 我的代码是: OleDbCommand exclCmd = new OleDbCommand("select * from [Sheet1$]", exclConnection); exclConnection.Open(); OleDbDataReader exclReader = e

我正在尝试将excel数据导入sql server数据库。除了excel中的格式为datetime、数据库中的数据类型为time的一列之外,所有内容都可以正常工作。当我尝试插入数据时,无法将日期时间转换为时间

我的代码是:

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,convert(time,col4)作为[Sheet1$]中的col4”bt转换函数不可用

有人能帮我吗?谢谢

  • 若暂存表是一个选项,那个么可以使用文本(col4,“dd-mmmm-yyy-hh:mm:ss”)将Excel日期转换为字符串。一旦数据进入暂存表,就可以编写适当的SQL语句插入到正确的表中

  • 我将使用SSI来完成这类任务,因为这样可以更好地控制数据转换