此 SQL 声明的意图是什么?

What is the intent of this SQL statement?

我运行进入如下:

DECLARE @UpdateDtm datetime = DATEADD(dd, 0, DATEDIFF(dd, 0, DATEADD(minute, -10, GETDATE())))
SELECT @UpdateDtm

它returns今天的日期:2021-10-11 00:00:00.000,但我不是很理解其中的逻辑。首先它从 GetDate 中减去 10 分钟,然后得到该时间与开始时间之间的天数差异。然后它将差异(再次以天为单位)添加到时间的开始。

据我所知,它可以简单地替换为 CAST(GETDATE() AS Date)。我在这里遗漏了什么吗?

目的是获取午夜到 10 分钟前的日期。所以(大致)现在,2021-10-11T22:30:30 (UTC) 这将是 return 2021-10-11T00:00:00。但是,如果它是 2021-10-11T00:07:30 它将 return 2021-10-10T00:00:00.

为什么不只是 CAST/CONVERT 约会,我不确定。也许它最初是在 2008 年之前写的?

SELECT CONVERT(date, DATEADD(minute,-10, GETDATE());