如何在mysql中找到日期间隔的可用日期?

时间:2015-01-13 11:14:18

标签: php mysql

问题

我有一个php类预订脚本,允许每1到4周重复一次预订课程。

课程持续时间为30分钟或60分钟。

如果在一个时段中预订了新班级,它会检查在所选日期的当天是否存在冲突班级。

此刻的剧本可以找到每周复发的冲突,但是我无法弄清楚如何检查每2周+的复发次数。

一些代码

$datetime = '2015-01-13 09:00:00';

SQL看起来像这样。 (可能不是最理想的)

 $sql = "SELECT  datetime
        FROM    classes
        WHERE   (staff_id = :staff_id AND DAYOFWEEK(datetime) = DAYOFWEEK(:datetime))
        AND (TIME(datetime) >= TIME(:time_from) AND TIME(datetime) < TIME(:time_to))
        OR (TIME(:datetime_from) BETWEEN TIME(datetime) 
            AND TIME(ADDTIME(datetime_to, '-0 0:0:1')))";

如果计数是> 0然后它将不允许在全年选择的那个时间/日预订课程。

所需能力

如果在每周二上午9点开始预订每周一次的课程,请注意2015-01-13 09:00:00,我需要能够在交替的几周内使用空缺。目前每个星期二都会阻止。

我创建了一个重复日期数组,并将其与上述SQL的结果进行了比较,但这些结果是发生冲突的日期。

有什么想法吗?

0 个答案:

没有答案