TSQL中是否有办法查询日期时间列的值为“现在减去(一定时间)”的行来选择时间范围?
例如在MySQL中,我可以构建这样的谓词:
(EndTime BETWEEN NOW() - INTERVAL 2 DAY AND NOW())
如何在SQL Server中的TSQL中完成此操作?
答案 0 :(得分:16)
您可以使用 dateadd 功能,例如
where endtime between dateadd(day, -2, getdate()) and getdate()
因为列endtime
不是函数参数,所以查询优化器可以使用可能在其上定义的任何索引(sargable的定义)。
答案 1 :(得分:4)
答案 2 :(得分:3)
您可以使用datediff功能。
例如,要查找最近五分钟内创建的内容,您可以执行
select *
from Table t
where datediff(minute, t.CreationDate, getutcdate()) <= 5