我正在用这个

DECLARE @Year_Filter_Start AS DATETIME
SET @Year_Filter_Start = DATEADD( dd, -1, DATEADD( yy, DATEDIFF( yy, 0, GetDate() ), 0 ) )
DECLARE @Year_Filter_End AS DATETIME
SET @Year_Filter_End = GetDate()

INSERT INTO TABLE
  ( blah )
SELECT blah
  FROM OTHER_TABLE
 WHERE ACTISSUEDATE IS NULL
    OR ACTSTARTDATE BETWEEN @Year_Filter_Start AND @Year_Filter_End

并且返回的记录中ACTISSUEDATE不为null,并且ACTSTARTDATE不在开始日期和今天之间。 @Year_Filter_Start应该是今年年初,@Year_Filter_End应该是今天。

例如:

ACTSTARTDATE为2010-08-02和ACTISSUEDATE为2011-03-15的记录

或ACTSTARTDATE为2009-05-18且ACTISSUEDATE为2009-09-06的地方

这句话有什么问题吗?

最佳答案

请尝试以下操作,我认为您需要再加上一些括号:

WHERE ((ACTISSUEDATE IS NULL)
    OR (ACTSTARTDATE BETWEEN @Year_Filter_Start AND @Year_Filter_End))

引擎将其视为您拥有该状态的两个语句。您需要使其成为一体。

10-05 22:51