. net datetime with milliseconds sql server使用bulkcopy方式异常

本文关键字:使用 bulkcopy 方式 异常 server sql datetime with milliseconds net | 更新日期: 2023-09-27 18:10:07

我有这段代码,它抛出了一个异常。

SqlConnection con;
con = new SqlConnection(connectionStr);
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = System.Data.CommandType.Text;     
cmd.CommandText = @"select [ID], [VERSION_ID], '08/26/2015 09:33:24:717 AM' as [Added_Dt],     [Loc_ID] as Column1
from dbo.Source where Added_Dt between CONVERT(DATETIME,'08/24/2015 09:25:43:283 AM') and CONVERT(DATETIME,'08/24/2015 09:25:43:283 AM')";
    cmd.CommandTimeout = con.ConnectionTimeout;
    con.Open();
    SqlDataReader rdr = cmd.ExecuteReader();
    System.Data.SqlClient.SqlBulkCopy bcp = new SqlBulkCopy(destconnectionStr, SqlBulkCopyOptions.UseInternalTransaction);
    bcp.BatchSize = (int)Global.BatchWriteThreshold;
    bcp.DestinationTableName = destinationTableName;
    bcp.NotifyAfter = (int)Global.BatchWriteThreshold;
    bcp.SqlRowsCopied += new SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
    bcp.WriteToServer(rdr);

目标表(SQL Server 2005): ID (int, not null), VERSION_ID (int, not null)

Added_Dt(DATETIME,not null),Column1(varchar2(50),not null)

如果与SqlBulkCopy一起使用,则抛出异常,但在单个更新或直接从SQL Management Studio使用ado.net时运行没有任何问题。我发现删除毫秒部分使大容量拷贝运行时没有异常,但我希望毫秒在那里。如何解决这个问题?

. net datetime with milliseconds sql server使用bulkcopy方式异常

'08/24/2015 09:25:43:283 AM'不是有效的日期字符串。最终的:应该是一个.。意义:

'08/24/2015 09:25:43.283 AM'

当然,这在SSMS中是不会发生错误的:

SELECT CONVERT(DATETIME,'08/24/2015 09:25:43:283 AM');

如果解决这个问题没有帮助,那么您需要提供确切的异常消息。