我有兩個記錄在我的桌子:SQL條件where子句
表:
ID StartDate EndDate
1 2013-01-01 2016-01-01
2 2016-02-01 NULL
我的查詢:
@DatePeriodFrom = 2016-01-01
@DatePeriodTo = 2016-01-01
select *
from tableabove ta
where (ta.StartDate >= @DatePeriodFrom and ta.EndDate >= @DatePeriodTo)
我在這裏的問題是,它會返回任何結果。如果我用or
替換and
,它將返回兩行。我正在考慮使用ISNULL
,但我沒有運氣。
編輯
我想是返回從給定的起始日期和結束日期,如果不考慮行具有空結束日期基於該行。
在上面的例子中,應該返回第一行。
在這個例子中,第二行應返回:
@DatePeriodFrom = 2016-02-01
@DatePeriodTo = 2016-02-01
任何想法?
等等,我試過chang日期。我的開始日期和結束日期是2016年2月1日,當我運行查詢時,它返回了兩行。它應該只返回第二行。 –
是的,它會根據查詢返回兩行,所以你不希望第二行是正確的?你不希望它匹配NULL? – FallAndLearn
自從我的startdate和enddate是2016-02-01開始,它應該只返回第二行,第二行的開始日期是2016-02。 –