我有一个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
答案 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可能能够保持微观,但代码正在为它提供毫秒