按日期选择露营地可用性

时间:2013-03-21 11:45:13

标签: php sql

我正在研究露营地管理系统,并一直试图找出日期选择查询。

$ sdate是预订的开始日期 $ edate是预订的结束日期

我只是想找到这些日期之间当前没有保留的网站。 现在它运作得相当好,除非有人想要保留某人离开的同一天,它被认为是因为某人“在”该地点,但将在那天离开所以它不应该出现

日期格式为mm / dd / yyyy

数据库中的格式设置为日期,设置为varchar,格式相同。

$searchSite= $wpdb->get_results("SELECT *
        FROM wp_campground_sites
        WHERE wp_campground_sites.id
        NOT IN
        (
            SELECT wp_campground_sites.id
            FROM wp_campground_sites
            JOIN wp_campground_reservations
            ON wp_campground_sites.id = wp_campground_reservations.site_id
            WHERE
            (
             '$edate' between reservations.sdate and reservations.edate
             OR
            '$sdate' between reservations.sdate and reservations.edate
            OR
            reservations.sdate between '$sdate' and '$edate'
            )
       ");

1 个答案:

答案 0 :(得分:1)

您必须将varchar字符串更改为日期格式并比较

select date_format(str_to_date('12/31/2011', '%m/%d/%Y'), '%Y%m');

因为在使用date_formate函数将varchar数据类型转换为实际日期格式之前,您将要比较字符串和日期结果。