0

我们有一个表来存储事件。

表有一个类似的模式

EventID INT Primary Key
EventName NVARCHAR(100)
StartDate Datetime
EndDate Datetime

所以在前端我们要根据开始时间和结束时间来显示事件。从前端我们传递 StartDate 和 EndDate 作为参数来获取值。

到目前为止,我们已经采取了

   Select * from tbl_Events
   where ((startDate BETWEEN @start AND @end) OR (EndDate BETWEEN @start AND @end))

我们有 2 个视图来显示事件 -

  1. 月视图-显示当月的所有事件

  2. 显示当天事件的日视图

假设我有一个活动,开始日期为 2012 年 10 月 23 日,结束日期为 2012 年 10 月 27 日。

我正在@StartDate as 24 Oct 2012路过@EndDate as 25 OCt 2012

根据上面的查询,它在月视图中工作。但它在日视图中不起作用。

谁能帮我修改查询

4

1 回答 1

2

您的重叠逻辑实际上应该是:

Select *
from tbl_Events
where startDate <= @end AND @start <= EndDate
于 2012-10-10T11:37:04.720 回答