Sql 我们在日期函数中传递0作为计算开始日期、结束日期的参数,该参数的解释是什么?

Sql 我们在日期函数中传递0作为计算开始日期、结束日期的参数,该参数的解释是什么?,sql,sql-server,date,Sql,Sql Server,Date,这里像这样的疑问,, 即:这里是计算年份的第一个日期 select DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0) 这里使用了0,这有什么解释?很明显,你是说为什么 0是一个任意的日期,很容易写,我想是1753年1月1日。在非常常见的dateadddatediff公式中,这并不重要,如果同时使用dateadd和datediff参数,则任何日期/时间都同样有效。但是,0很容易编写,而且每个人都在做同样的事情,看到它并理解它会带来一些安慰 DateAddDateDif

这里像这样的疑问,, 即:这里是计算年份的第一个日期

select DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0)

这里使用了0,这有什么解释?

很明显,你是说为什么

0是一个任意的日期,很容易写,我想是1753年1月1日。在非常常见的dateadddatediff公式中,这并不重要,如果同时使用dateadd和datediff参数,则任何日期/时间都同样有效。但是,0很容易编写,而且每个人都在做同样的事情,看到它并理解它会带来一些安慰

DateAddDateDiff的工作方式如下:例如在查询中

DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0)

,您需要getdate年的第一个时刻。你是怎么做到的?你问从1753年1月1日到2018年7月3日已经过去了多少年,结果是265年。然后将265年的数字加在1753年1月1日。因为您只添加了年份,而不是月份、天数、小时等,所以您将获得2018年1月1日00:00:00。

您使用的是哪种dbms?这是特定于产品的功能。