【问题标题】:SQL Server: Understanding DATEDIFF functionSQL Server:了解 DATEDIFF 函数
【发布时间】:2011-03-26 08:41:21
【问题描述】:

我很难理解函数 DATEDIFF。查询时

SELECT DATEDIFF(YEAR, 0, getdate())

我得到了当年和 1900 年之间的差异,结果为 111。我认为开始时间应该是时间,而不是像 0 这样的整数。如何使用 0?为什么开始年份是 1900 年,而不是格式为日期时间的 1753 年?

【问题讨论】:

    标签: sql sql-server tsql sql-server-2008 datetime


    【解决方案1】:

    由于隐式转换 0 到 1900 年 1 月 1 日,它在日期时间中有效。

    为什么不是 1900?为什么 MS Access 的 0 = 1899 年 12 月 31 日?为什么 unix 时间戳从 1970 年 1 月 1 日开始?

    1753 也是相当随意的:它是向公历的主要转换,但并不一致。 SQL Server 2008 也可追溯到 0001 年 1 月 1 日的更新类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多