我有一个包含一些数据的网格和其日期范围的2个单元格(网格开始日期 - >网格结束日期)
用户可以选择输入日期范围(也包括用户开始日期和用户结束日期),我的目标是向用户显示网格,其中包含任何类型日期包含在日期范围内的行网格(网格开始日期 - >网格结束日期)任何类型的日期(用户开始日期或用户结束日期)。
例如,网格中的一行可以是
sport-football games-23/11/2014-27/12/2014
并且用户输入了14/10/14 - 25/12/14
,这将显示网格行,因为25/12/14
包含在其日期范围内。
P.S
我还需要确认companyId,因为我只想展示用户公司
WHERE (companyID = @companyId)
AND ((DATEDIFF(DateInterval.Day, dateStart, @tmp1) >= 0
AND DATEDIFF(DateInterval.Day, dateEnd, @tmp1) <= 0)
OR (DATEDIFF(DateInterval.Day, dateStart, @tmp2) >= 0)
AND DATEDIFF(DateInterval.Day, dateEnd, @tmp2) <= 0))
tmp1和tmp2是用户的开始和结束日期 由于某种原因,一些“(”似乎在执行中自动删除所以它可能会破坏它?
答案 0 :(得分:0)
Select *
from your_table t
where (@d1 > t.LowDate and @d1 <= t.HighDate)
or (@d2 > t.LowDate and @d2 <= t.HighDate)
不管它对你有用吗?