我試圖在 SQL SERVER 中獲取具有特定時間戳的昨天日期。
我知道如何使用以下查詢在沒有時間戳的情況下在 SQL 中獲取昨天的日期:
這給了我從'00:00:00'開始的每個開始日期:
SELECT se.startdate
FROM sessions se
WHERE se.startdate >= DATEADD(day, -1, CAST(GETDATE() AS date))
相反,我想獲得帶有特定時間戳的昨天日期。對于此示例,每個 startdate 從 '06:00:00'(AM) 開始。如下圖所示:
SELECT se.startdate
FROM sessions se
WHERE se.startdate >= '05-09-2022 06:00:00'
如果我按照第二個示例中顯示的方式進行操作,我將不得不手動更改日期,這顯然會重復。
有沒有辦法將第一個示例與第二個示例結合起來,以便我們總是在 '06:00:00' 獲得昨天的日期?(或任何給定的時間)
uj5u.com熱心網友回復:
不妨添加另一個解決方案,DATETIMEFROMPARTS:
DECLARE @Yesterday date = DATEADD(DAY, -1, GETDATE());
SELECT DATETIMEFROMPARTS(YEAR(@Yesterday),MONTH(@Yesterday),DAY(@Yesterday),6,0,0,0);
uj5u.com熱心網友回復:
例如前一天的 06:20:40:
select DATEADD(second, (6 * 60 20 ) * 60 40, cast(DATEADD(day, -1, cast(GETDATE() AS date)) as datetime)) t
uj5u.com熱心網友回復:
你可以這樣做:
SELECT DATEADD(day, DATEDIFF(day, 1, GETDATE()), '06:00:00')
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/472592.html
