sql select命令,从日期到日期

时间:2014-05-23 10:21:29

标签: sql sql-server date datetime

我有一个包含一些数据的网格和其日期范围的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是用户的开始和结束日期  由于某种原因,一些“(”似乎在执行中自动删除所以它可能会破坏它?

1 个答案:

答案 0 :(得分:0)

Select * 
from your_table t 
where (@d1 > t.LowDate and @d1 <= t.HighDate) 
or (@d2 > t.LowDate and @d2 <= t.HighDate) 

不管它对你有用吗?