【发布时间】: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
我很难理解函数 DATEDIFF。查询时
SELECT DATEDIFF(YEAR, 0, getdate())
我得到了当年和 1900 年之间的差异,结果为 111。我认为开始时间应该是时间,而不是像 0 这样的整数。如何使用 0?为什么开始年份是 1900 年,而不是格式为日期时间的 1753 年?
【问题讨论】:
标签: sql sql-server tsql sql-server-2008 datetime
由于隐式转换 0 到 1900 年 1 月 1 日,它在日期时间中有效。
为什么不是 1900?为什么 MS Access 的 0 = 1899 年 12 月 31 日?为什么 unix 时间戳从 1970 年 1 月 1 日开始?
1753 也是相当随意的:它是向公历的主要转换,但并不一致。 SQL Server 2008 也可追溯到 0001 年 1 月 1 日的更新类型。
【讨论】: