【发布时间】:2021-10-11 22:26:45
【问题描述】:
我遇到了以下问题:
DECLARE @UpdateDtm datetime = DATEADD(dd, 0, DATEDIFF(dd, 0, DATEADD(minute, -10, GETDATE())))
SELECT @UpdateDtm
它返回今天的日期:2021-10-11 00:00:00.000,但我并不完全理解其中的逻辑。首先它从GetDate 中减去 10 分钟,然后得到该时间与开始时间之间的天数差。然后它将差异(再次以天为单位)添加到时间的开始。
据我所知,它可以简单地替换为CAST(GETDATE() AS Date)。我在这里遗漏了什么吗?
【问题讨论】:
-
正确,在这种情况下确实可以替换为
cast,但它是截断到任意点的通用公式 -
嗯,-10 意味着在一天的前 10 分钟,你的结果仍然是昨天,所以不能被演员取代。
标签: sql sql-server tsql sql-server-2017