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 数据错误