我希望只选择在过去“X”天内添加或修改过的表中的记录,比方说5天。
Accounts表有两列:CreateWhen和UpdateWhen。
我使用以下内容:
Select * from Accounts where CreateDate >= getdate() -5 or UpdateWhen >= getdate() -5
这是处理此请求的最有效方法吗?它似乎有效。
答案 0 :(得分:1)
您没有说出您正在使用的数据库引擎。这里的解决方案应该适用于SQL Server:
SELECT *
FROM Accounts
WHERE DATEADD(d, 5, CreateDate) >= GETDATE()
OR DATEADD(d, 5, UpdateWhen) >= GETDATE()
它使用DATEADD
功能,允许您为DateTime
值添加不同的时间间隔。在此示例中,您将添加5天(d
作为第一个参数的内容。)
您可以采用其他方式:将{-5}天添加至GETDATE()
并直接与UpdateWhen
和CreateDate
进行比较:
CreateDate >= DATEADD(d, -5, GETDATE())
选择一个您认为更易读且更易于理解的内容。