在 SQL 中篩選出 endtime 落在「當前時間往前 7 天」範圍內的記錄。
-- 含邊界:前 7 天包含今天
WHERE endtime >= DATEADD(DAY, -7, GETDATE())
-- 不含今天:嚴格前 7 天
WHERE endtime >= DATEADD(DAY, -7, GETDATE()) AND endtime < CAST(GETDATE() AS DATE)
WHERE endtime >= DATE_SUB(NOW(), INTERVAL 7 DAY)
WHERE endtime >= SYSDATE - 7
WHERE endtime >= NOW() - INTERVAL '7 days'
原寫法 DateDiff(d, (select endtime ...), getdate()) <= 7 存在效能問題(子查詢逐行執行)且邊界語意模糊。建議改為 SARGable 寫法(可用索引):endtime >= DATEADD(DAY, -7, GETDATE())。
endtime 上有索引。