查询"现在"的日期时间列减去一定的时间?

Kyl*_*ndt 9 t-sql sql-server

在TSQL中是否有办法查询日期时间列的值为"现在减去(一定的时间)"的行来选择时间范围?

例如在MySQL中我可以构建这个谓词,如:

(EndTime BETWEEN NOW() - INTERVAL 2 DAY AND NOW())
Run Code Online (Sandbox Code Playgroud)

如何在SQL Server中的TSQL中完成?

小智 16

您可以使用dateadd函数,例如

where endtime between dateadd(day, -2, getdate()) and getdate()
Run Code Online (Sandbox Code Playgroud)

由于该列endtime不是函数参数,因此查询优化器可以使用可能在其上定义的任何索引(sargable的定义).