SQL Server和C#中DateTime的毫秒数不同

时间:2019-04-01 06:32:03

标签: c# sql-server sql-server-2008

我正在从SQL Server中的数据库获取日期。
当我从数据库获得DateTime时,我比较了C#和SQL Server中的毫秒数。
我看到它们不一样。

那是为什么?

1 个答案:

答案 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,而只能使用较新的数据类型。