0

我在我的 mysql 预订表中有一个预订,bookings如下所示:

start_date = 2013-03-04
end_date = 2013-03-08

我想检查特定日期(在本例中为 2013 年 3 月 4 日)是否介于预订的开始日期和结束日期之间 - 但我想在开始日期上增加一天并从结束日期减去 1 天日期。

因此,我不想在 2013-03-04 和 2013-03-08 之间搜索而是在 2013-03-052013-03-07之间搜索

下面的查询从结束日期减去 1 天,但将开始日期保留为 04。下面的搜索应该没有结果,但它仍然使用 04 作为开始日期,并给出了该预订的结果。它基本上是在 [04] [05] [06] [07] 之间搜索,什么时候应该做 [05] [06] [07]

$fd_query_params = array( 
    ':day' => '2013-03-04
);

$query = " 
    SELECT 
        *
    FROM 
        bookings as bb 
    WHERE 
        :day BETWEEN 
        DATE_ADD(bb.start_date, INTERVAL 1 DAY) 
        AND 
        DATE_SUB(bb.end_date, INTERVAL 1 DAY)
";
4

1 回答 1

0

我自己不是 php 专家,但如果我注意到的更多,那么 :day 字符串周围只有一个引号。最好查看输出以验证 start_date 和 end_date 是什么

于 2013-03-14T22:13:28.077 回答