当我执行以下查询时,我得到不同的结果。
SELECT Datediff(year, 0, Getdate());
结果是 115
当我使用它时,我得到另一个结果:
SELECT Datediff(year, 1900, Getdate());
结果是 110
实际上在 SQL Server 中,它将取自 1900-01-01
,但为什么这些显示不同的值?
最佳答案
尝试解释一下逻辑:
select cast(0 as datetime)
select cast(1 as datetime)
整数被解释为自 1900-01-01 以来的天数,而字符串值(例如“1900”)将被解释为日期格式。
从 1900 年 1 月 1 日算起的 1900 天是 1905 年 3 月 16 日,距 1900 年已有五年,距现在(2015 年)已有 110 年。
关于sql - 为什么 Datediff 函数显示不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31132387/