USP_DATALIST_EVENTSWITHCONFLICTINGTIMINGS
Returns a list of all events that have conflicting start/end times with given event.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_EVENTSWITHCONFLICTINGTIMINGS(@EVENTID uniqueidentifier)
as
set nocount on;
declare @REGISTEREDEVENTSTARTDATETIME datetime
declare @REGISTEREDEVENTENDDATETIME datetime
select
@REGISTEREDEVENTSTARTDATETIME = STARTDATETIME,
@REGISTEREDEVENTENDDATETIME = ENDDATETIME
from
dbo.EVENT
where
ID = @EVENTID
select
E.ID,
E.NAME,
E.STARTDATETIME,
E.ENDDATETIME,
BBNC.ID AS BBNCEVENTID
from
dbo.EVENT E
inner join dbo.BBNCEVENTIDMAP BBNC on E.ID = BBNC.EVENTID
where
E.ISACTIVE = 1
and BBNC.EVENTID <> @EVENTID
and (
( --registered event starts between conflicting event start/end times
DATEDIFF(mi, E.STARTDATETIME, @REGISTEREDEVENTSTARTDATETIME) > 0 and DATEDIFF(mi, E.ENDDATETIME, @REGISTEREDEVENTSTARTDATETIME) < 0
)
or
( --registered event ends between conflicting event start/end times
DATEDIFF(mi, E.STARTDATETIME, @REGISTEREDEVENTENDDATETIME) > 0 and DATEDIFF(mi, E.ENDDATETIME, @REGISTEREDEVENTENDDATETIME) < 0
)
or
( --conflicting event starts and ends between registered event start/end times
DATEDIFF(mi, @REGISTEREDEVENTSTARTDATETIME, E.STARTDATETIME) > 0 and DATEDIFF(mi, @REGISTEREDEVENTENDDATETIME, E.STARTDATETIME) < 0 and DATEDIFF(mi, @REGISTEREDEVENTSTARTDATETIME, E.ENDDATETIME) > 0 and DATEDIFF(mi, @REGISTEREDEVENTENDDATETIME, E.ENDDATETIME) < 0
)
or
( --registered event starts at the same time as conflicting event
DATEDIFF(mi, E.STARTDATETIME, @REGISTEREDEVENTSTARTDATETIME) = 0
)
)