DateTime 和 DateTime2 之间的区别 [重复]

Posted

技术标签:

【中文标题】DateTime 和 DateTime2 之间的区别 [重复]【英文标题】:difference between DateTime and DateTime2 [duplicate] 【发布时间】:2010-08-17 02:05:18 【问题描述】:

可能重复:SQL Server datetime2 vs datetime

.NET 中DbType.DateTimeDbType.DateTime2 有什么区别?

如果我正在使用DbType.Date,并且我想更改为 DateTime 类型,我应该使用DateTime 还是DateTime2

【问题讨论】:

***.com/questions/1334143/…的可能重复 我已经明确提到了 .NET 中的 DbType 类。我使用的是 MDB 数据库,因此它与 SQL Server 无关。这个问题不应该被关闭! 致那些支持我评论的人:请投票重新提出这个问题。 【参考方案1】:

DbType.DateTimeDbType.DateTime2 都映射到 .NET 类型 System.DateTime。如果您需要额外的精度和可以追溯到 1753 年之前的日期,请使用DateTime2;否则DateTime 就足够了。

这个MSDN link 解释得很好。

希望这会有所帮助!

【讨论】:

【参考方案2】:

DbType.DateTime2 和 DbType.DateTime 与this post 所述的 SQL Server 中的类型完全相同。

当我做 SQL Server 工作时,我通常不需要额外的分辨率,也不会回到 1753,所以在 .NET 中我倾向于使用 System.DateTime 来解决这个问题,而不是任何一个。如果您需要回到过去或需要疯狂的精确度,请将 DbType.DateTime2 与 SQL Server 类型的 DateTime2 配对使用。

因此,简而言之,如果您使用 Access 进行编程,您可能不应该使用任何一种。

【讨论】:

如果我使用 Access,为什么不应该使用其中任何一种?

以上是关于DateTime 和 DateTime2 之间的区别 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

强制实体框架使用 datetime 而非 datetime2

如何在 XML SCHEMA 中使用 datetime2 类型?

如何使用 DbContext 和 SetInitializer 修复 datetime2 超出范围的转换错误?

EF6中一个关于时间类型 datetime2 的坑

MSSQL DateTime2 更新失败

在 SSMS 中将 Datetime2 更改为 Datetime