哪一个:
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 页