我正在从SQL Server中的数据库获取日期。
当我从数据库获得DateTime
时,我比较了C#和SQL Server中的毫秒数。
我看到它们不一样。
那是为什么?
答案 0 :(得分:4)
SQL Server的datetime
数据类型在毫秒级别上不准确。
Official documentation提供了数据时间数据类型的属性列表。
在该列表中,您将找到以下行:
Accuracy Rounded to increments of .000, .003, or .007 seconds
您还将在同一页面中找到以下引号:
注意
使用时间,日期, datetime2 和 datetimeoffset 数据类型进行新工作。这些类型符合SQL标准。它们更便携。 时间, datetime2 和 datetimeoffset 可提供更高的秒精度。 datetimeoffset 为全局部署的应用程序提供时区支持。
如果您使用DateTime
的{{3}} istead,您将获得100纳秒的精度,还有其他好处。
实际上,除非需要保持向后兼容性,否则根本不应该使用DateTime
,而只能使用较新的数据类型。