我需要存储从使用 DateTime.UtcNow 的 C# 应用程序发送到数据库的 DateTime 值。如果我将它保存到 DateTime 列,毫秒值始终为 000。但是在从应用程序调试时,毫秒值从应用程序发送到数据库。 我错过了什么?
最佳答案
它可能发生因为datetime
列舍入毫秒部分。来自文档;
Accuracy
Rounded to increments of
.000
,.003
, or.007
seconds
由于您没有向我们展示您存储UtcNow
值的频率(我假设您将其存储为DateTime
,而不是字符串表示,因为无参数 ToString
和其他标准格式不会生成毫秒部分通常),这可能会发生但是如果你在短时间间隔内这样做,它总是很奇怪四舍五入到 000
作为毫秒部分。但当然,我们还不能知道这一点。
另一方面,datetime2
类型不做任何舍入。它的精度是 100 纳秒。
Accuracy
100 nanoseconds
关于c# - 毫秒值未保存在 SQL Server DateTime 列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35766634/