对于以下查询,我得到100
的正值。为什么?我期待-100
。
SELECT DATEDIFF(SECOND, GETUTCDATE(), DATEADD(SECOND, 100, GETUTCDATE()))
在MSDN中的文档here中,DATEDIFF
功能的格式低于
DATEDIFF (datepart, startdate, enddate)
所以,我不确定我错过了什么。
答案 0 :(得分:4)
嗯,这是因为时间从一个方向“流动”,从较旧的日期到最近的日期。
因此,假设startdate
相当于“天以来”,而enddate
相当于“直到天”,这是正常的。
这样,想要查看较旧日期与较近日期之间的时间/日期差异将产生正数(因为“时间流”)是有意义的。否则,你正在进行“相反的流动”,你将获得一个负数。
答案 1 :(得分:2)
它比较第二个相对于第一个日期的大小。因此,第二个日期大于100秒就是您收到答案的原因。