【问题标题】:Milliseconds from DateTime in SQL Server and C# are not the sameSQL Server 和 C# 中 DateTime 的毫秒数不相同
【发布时间】:2019-08-22 06:30:35
【问题描述】:

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

这是为什么呢?

【问题讨论】:

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


【解决方案1】:

SQL Server 的datetime 数据类型在毫秒级别上不准确。
Official documentation 提供了数据时间数据类型的属性列表。 在该列表中,您将找到以下行:

Accuracy Rounded to increments of .000, .003, or .007 seconds

您还将在同一页面中找到以下引用:

注意
对新作品使用 timedatedatetime2datetimeoffset 数据类型。这些类型符合 SQL 标准。它们更便携。 timedatetime2datetimeoffset 提供更高的秒精度。 datetimeoffset 为全球部署的应用程序提供时区支持。

如果您使用 DateTime2 而不是 DateTime,您将获得 100 纳秒的精度以及其他好处。
事实上,除非您需要保持向后兼容性,否则您根本不应该使用DateTime,而只能使用较新的数据类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-13
    • 2015-09-16
    • 2011-02-21
    • 2015-11-20
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 2010-11-30
    相关资源
    最近更新 更多