Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server:了解DATEDIFF函数_Sql_Sql Server_Tsql_Sql Server 2008_Datetime - Fatal编程技术网

SQL Server:了解DATEDIFF函数

SQL Server:了解DATEDIFF函数,sql,sql-server,tsql,sql-server-2008,datetime,Sql,Sql Server,Tsql,Sql Server 2008,Datetime,我很难理解DATEDIFF函数。查询时 SELECT DATEDIFF(YEAR, 0, getdate()) 我得到今年和1900年的差额。我认为开始时间应该是时间,而不是像0那样的整数。如何使用0?为什么起始年是1900年,而不是1753年,因为格式是datetime?它在datetime中工作,因为0隐式转换为1900年1月1日 为什么不是1900年?为什么0=1899年12月31日适用于MS Access?为什么unix时间戳是从1970年1月1日开始的 1753年也是相当随意的:它是

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

SELECT DATEDIFF(YEAR, 0, getdate())

我得到今年和1900年的差额。我认为开始时间应该是时间,而不是像0那样的整数。如何使用0?为什么起始年是1900年,而不是1753年,因为格式是datetime?它在datetime中工作,因为0隐式转换为1900年1月1日

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

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