DateTime vs DateTime2 [重复]

Posted

技术标签:

【中文标题】DateTime vs DateTime2 [重复]【英文标题】:DateTime vs DateTime2 [duplicate] 【发布时间】:2016-03-30 22:04:27 【问题描述】:

我们正在构建一个系统,该系统在每个表(CreatedDate、LastUpdateDate)上都有审计字段,目前是DATETIME 字段。

两者的值都是通过 .Net 代码(通过 EF)设置的。

将它们全部更改为 DATETIME2 有什么好处吗?

还有……

没有触发器,有没有办法可以在表格上的更新/插入上设置这些?将 GETDATE() 的 DEFAULT 添加到“CreatedDate”可能有助于该字段(尽管它仍然可以被 .Net 代码覆盖)......但是我可以用 LastUpdateDate 做什么?

【问题讨论】:

【参考方案1】:

好的,这个问题很受欢迎。您的第一部分答案是,如果您更关心兼容性而不是精度,请使用日期时间。 某些客户端不支持日期、时间或 datetime2 并强制您转换为字符串。所以明智地使用它。 more over datetime2 的范围更大。

SQL Server datetime2 vs datetime https://technet.microsoft.com/en-us/library/bb677335.aspx http://sqlhints.com/2011/09/17/difference-between-datetime-and-datetime2-datatype/

很抱歉,我无法正确理解您问题的第二部分。如果你请清除我。

【讨论】:

谢谢。第二部分更多地是关于“如何在不使用触发器的情况下添加或修改行时设置 CREATEDATE 和 LASTUPDATE。 如果我遇到这个问题,那么我从代码端解决问题。当我插入新条目时,我曾经保留CreatedDate,CreatedBy,ModifiedDate,ModifiedBy,我填写了第一个两个属性,第二个能够接受。如果我更新或修改对象,然后我更新第二个两个属性。就是这样

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

将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围 - 未使用 DateTime2

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

在 SSMS 中将 Datetime2 更改为 Datetime

将 datetime2 数据类型转换为 datetime 数据错误

向“datetime2”列添加值导致溢出。 EF Core 日期比较

如何插入DateTime2