DateTime2与SQL Server中的DateTime

哪一个:

  • datetime
  • datetime2
  • 是SQL Server 2008+中存储日期和时间的推荐方式?

    我知道精度(可能存储空间)有差异,但是现在忽略这些差异,是否有最佳实践文档说明何时使用什么,或者我们应该只使用datetime2


    datetime的MSDN文档建议使用datetime2。 这是他们的建议:

    为新工作使用时间,日期,datetime2和datetimeoffset数据类型。 这些类型与SQL标准一致。 他们更便携。 时间,datetime2和datetimeoffset提供更多的秒精度。 datetimeoffset为全局部署的应用程序提供时区支持。

    datetime2具有较大的日期范围,较大的默认小数精度以及可选的用户指定的精度。 还取决于用户指定的精度,它可能会使用较少的存储空间。


    DATETIME2的日期范围为“0001/01/01”至“9999/12/31”,而DATETIME类型仅支持1753-9999年。

    另外,如果您需要, DATETIME2可以在时间上更精确; DATETIME限制为3 1/3毫秒,而DATETIME2可以精确到100ns。

    这两种类型都映射到.NET中的System.DateTime在那里没有区别。

    如果您有选择,我会建议尽可能使用DATETIME2 。 我没有看到使用DATETIME任何好处(除了向后兼容性) - 你会有更少的麻烦(日期超出范围和麻烦)。

    另外:如果你只需要日期(没有时间部分),使用日期 - 它和DATETIME2一样好,并且也节省了空间! :-)只用于时间 - 使用TIME 。 这就是这些类型的存在!


    datetime2在大多数方面都获胜,除了(老应用程序兼容性)

  • 更大的价值范围
  • 更好的准确性
  • 较小的存储空间 (如果指定了可选的用户指定精度)
  • SQL日期和时间数据类型compare  -  datetime,datetime2,date,TIME

    请注意以下几点

  • 句法
  • datetime2 [(小数秒精度=>查看下面的存储大小)]
  • 精确,规模
  • 0到7位数字,精度为100ns。
  • 默认精度为7位数字。
  • 存储大小
  • 精度小于3的6个字节;
  • 精度为3和4的7个字节。
  • 所有其他精度需要8个字节
  • DateTime2(3)DateTime具有相同的位数,但使用7个字节的存储而不是8个字节(SQLHINTS- DateTime Vs DateTime2)
  • 在datetime2上查找更多(Transact-SQL MSDN文章)
  • 图像来源:MCTS Self-Paced培训套件(考试70-432):Microsoft®SQLServer®2008 - 实施和维护第3章:表格 - >第1课:创建表格 - >第66页

    链接地址: http://www.djcxy.com/p/16891.html

    上一篇: DateTime2 vs DateTime in SQL Server

    下一篇: How to remove the time portion of a datetime value (SQL Server)?