插入datetime2(7)

时间:2016-12-01 14:05:37

标签: c# sql-server

我有一个datetime2(7)列的表。

我创建如下命令参数:

cmdInsertActionNote.Parameters.Add("@DateTimeUTC", SqlDbType.DateTime2);

我填充并执行如下命令:

cmdInsertActionNote.Parameters["@DateTimeUTC"].Value = DateTime.utcNow;
int rowsAffected = cmdInsertActionNote.ExecuteNonQuery();

在我的sql表中,我看到:

  

2016-12-01 13:53:13.0700000

所以我有毫秒,但最后4位只有0。

我做错了什么?

编辑1:

对于那些认为它是一个Windows问题的人 - 它不适合我,我有Windows Server 2008,我得到微秒。这是从c#/ datetime.utcNow.TimeOfDay填充的“时间”列值:

  

12:06:56.6550029

1 个答案:

答案 0 :(得分:1)

来自https://stackoverflow.com/a/13909323/563088

  

您从DateTime.Now获得的值仅精确到16以内   毫秒

另请参阅:https://msdn.microsoft.com/en-us/library/system.datetime.utcnow(v=vs.110).aspx#Remarks

所以datetime2可能能够保持微观,但代码正在为它提供毫秒