我正在用这个
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))
引擎将其视为您拥有该状态的两个语句。您需要使其成为一体。