我有两个记录在我的桌子: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。 –