SQL Server 和 C# 中 DateTime 的毫秒数不相同
Posted
技术标签:
【中文标题】SQL Server 和 C# 中 DateTime 的毫秒数不相同【英文标题】:Milliseconds from DateTime in SQL Server and C# are not the same 【发布时间】:2019-08-22 06:30:35 【问题描述】:我正在从 SQL Server 的数据库中获取日期。
当我从数据库中获取 DateTime
并比较 C# 和 SQL Server 中的毫秒数时。
我看他们不一样。
这是为什么呢?
【问题讨论】:
你能举个例子来说明你所看到的吗? ***.com/help/how-to-ask 【参考方案1】:SQL Server 的datetime
数据类型在毫秒级别上不准确。Official documentation 提供了数据时间数据类型的属性列表。
在该列表中,您将找到以下行:
Accuracy Rounded to increments of .000, .003, or .007 seconds
您还将在同一页面中找到以下引用:
注意 对新作品使用 time、date、datetime2 和 datetimeoffset 数据类型。这些类型符合 SQL 标准。它们更便携。 time、datetime2 和 datetimeoffset 提供更高的秒精度。 datetimeoffset 为全球部署的应用程序提供时区支持。
如果您使用 DateTime2
而不是 DateTime
,您将获得 100 纳秒的精度以及其他好处。
事实上,除非您需要保持向后兼容性,否则您根本不应该使用DateTime
,而只能使用较新的数据类型。
【讨论】:
以上是关于SQL Server 和 C# 中 DateTime 的毫秒数不相同的主要内容,如果未能解决你的问题,请参考以下文章
判断sql server中datetime字段是不是为null的问题?
C# 中的日期时间与 SQL Server 中的 SQL 和 GETDATE()
C# 中不同数据库(如 Oracle 和 SQL Server)之间的 Sql 查询 [关闭]