SQL Server:日期减法

SQL Server:日期减法,sql,sql-server,datetime,stored-procedures,where-clause,Sql,Sql Server,Datetime,Stored Procedures,Where Clause,我正在尝试执行一个存储过程,在该过程中,我将使所有具有StartDate值的人严格地等于今天的7天。所以我可以在到达开始日期前7天激活它们 例如,我有一个用户“test1”,他的StartDate='2020-12-08 00:00:00.000' 所以我的查询应该只得到这个记录,因为他的 StartDate=今天的日期-7天 StartDate是我要检查的记录 CREATE PROCEDURE ActivePersonXdaysBeforeStartDate AS BEGIN SET

我正在尝试执行一个存储过程,在该过程中,我将使所有具有
StartDate
值的人严格地等于今天的7天。所以我可以在到达开始日期前7天激活它们

例如,我有一个用户“test1”,他的
StartDate
='2020-12-08 00:00:00.000'

所以我的查询应该只得到这个记录,因为他的

StartDate
=今天的日期-7天

StartDate
是我要检查的记录

CREATE PROCEDURE ActivePersonXdaysBeforeStartDate
AS
BEGIN
    SET NOCOUNT ON

    SELECT * 
    FROM Person 
    WHERE Active = 0
      AND DATEADD (DAY, -7, StartDate) = GETDATE()
END
但这并不意味着如何做到这一点?谢谢

您大概想要:

select * 
from person 
where active = 0 and startdate < dateadd (day, -7, convert(date, getdate()))
选择*
从个人
其中active=0,startdate

这将使所有未处于活动状态且其
startdate
的日期(严格地)比今天早7天(不包括今天的时间成分)的行.

非常感谢您的帮助,回答非常有效,但我没有得到结果,我期待着感谢您的帮助,回答非常有效,但我没有得到结果,我期待着我有一个记录,开始日期是2020-12-8 00:00:00.000,当我执行查询时,它应该会出现,但我不。我正在努力让所有人在今天+7天内都能做到这一点。因此,我将只得到今天有exaclty的人,比我不需要的人多7天。对不起,我弄错了,那就开始吧