我很难确定一个房间是否在一定的时间范围内预定。我将房间的开始时间和结束时间存储在一个名为periodInformation的表中。
我不太了解sql的时间/范围。我需要下面的询问来询问pi.StartTime和pi.EndTime,看看房间是否已经预订了。在下面的例子中,用户输入了一个从08:20到09:20的房间。我想确保在搜索pi.StartTime和pi.EndTime时,如果房间A1是在8:10-8:30或8:10-9:30预订的话,我也会得到结果。
我想我已经选择了适当的联接,只能找到连接两张表的例子,这里我连接了4张桌子,以确定是否预订了房间。
ExecuteSQL ( "
SELECT lr.pk_LessonRoomID
FROM LESSONROOM AS lr
LEFT JOIN Lesson AS l ON lr.fk_LessonID = l.pk_LessonID
LEFT JOIN PeriodInformation AS pi ON l.fk_PeriodListID = pi.fk_PeriodListID
LEFT JOIN PeriodList AS pl ON pi.fk_PeriodListID = pl.pk_PeriodListID
WHERE lr.fk_RoomID = ? AND pl.DayShort = ? AND pi.StartTime >=? AND pi.EndTime <=?" ;
"";
"" ;
"A1" ; "Mon" ; "08:20" ; "09:20")发布于 2015-07-30 13:55:49
对于订在8:20到9:20之间的房间,它必须上一节课,在8:20之后结束,9:20之前开始。
因此,如果您将最后两个条件更改为:
AND pi.EndTime >=? AND pi.StartTime <=?这应该包括在内。
https://stackoverflow.com/questions/31724901
复制相似问题