[英]Round .NET DateTime milliseconds, so it can fit SQL Server milliseconds
[英].Net datetime with milliseconds sql server using bulkcopy thows exception
我有這段代碼,它引發異常。
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,不為null),VERSION_ID(int,不為null),Added_Dt(DATETIME,不為null),Column1(varchar2(50),不為null)
如果與SqlBulkCopy一起使用,則會引發異常,但在單個更新中或直接從SQL Management Studio使用ado.net時,運行不會出現任何問題。 我發現刪除毫秒部分使批量復制無例外地運行,但是我希望毫秒數在那里。 該如何解決?
'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');
如果無法解決問題,則需要提供確切的異常消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.