哪一个:
SQL Server 2008 + 中存储日期和时间的推荐方法是什么?
我知道精度(可能还有存储空间)上的差异,但是暂时忽略这些差异,是否有关于何时使用什么的最佳实践文档,或者我们仅应使用datetime2 ?
DATETIME2的日期范围是 “0001/01/01” 到 “9999/12/31”,而DATETIME类型仅支持 1753-9999 年。
另外,如果需要, DATETIME2可以在时间上更精确; DATETIME 限制为 3 1/3 毫秒,而DATETIME2可以精确到 100ns。
两种类型都映射到. NET 中的System.DateTime那里没有区别。
如果您有选择,我建议尽可能使用DATETIME2 。我看不到DATETIME使用有什么好处(向后兼容性除外)- 您的麻烦会减少(日期超出范围且像这样麻烦)。
另外:如果您只需要日期(没有时间部分),请使用 DATE - 它与DATETIME2一样好,并且还节省了空间! :-) 相同的只是时间 - 使用TIME 。这就是这些类型的用途!
datetime2在大多数方面都胜出,但(旧应用程序兼容性)除外

请注意以下几点
图片来源: MCTS 自定进度培训套件(考试 70-432):Microsoft®SQLServer®2008 - 实施和维护第 3 章:表 -> 第 1 课:创建表 -> 第 66 页