我遇到了以下情況:
DECLARE @UpdateDtm datetime = DATEADD(dd, 0, DATEDIFF(dd, 0, DATEADD(minute, -10, GETDATE())))
SELECT @UpdateDtm
它回傳今天的 date: 2021-10-11 00:00:00.000,但我并不完全理解邏輯。首先從 中減去 10 分鐘GetDate,然后得到該時間與開始時間之間的天數差。然后它將差異(再次以天為單位)添加到時間的開始。
據我所知,它可以簡單地替換為CAST(GETDATE() AS Date). 我在這里錯過了什么嗎?
uj5u.com熱心網友回復:
目的是將午夜的日期設為 10 分鐘前的時間。所以(大致)現在,2021-10-11T22:30:30(UTC)這將回傳2021-10-11T00:00:00. 但是,如果是2021-10-11T00:07:30這樣,它將回傳2021-10-10T00:00:00。
為什么它不只是CAST/CONVERT約會,我不確定。也許它最初是在 2008 年之前撰寫的?
SELECT CONVERT(date, DATEADD(minute,-10, GETDATE());
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/311519.html
