MySQL where子句获取下周事件

时间:2015-04-14 11:04:31

标签: php mysql

我的表格包含event_start日期和event_end日期。

我很困惑如何获得下周的活动。以下变量具有下周开始日期和结束日期。

$day = date('w');
$next_week_start = date('Y-m-d', strtotime('+'.(7-$day).' days'));
$next_week_end = date('Y-m-d', strtotime('+'.(7+(6-$day)).' days')); 

我想得到下周活跃的活动。

这就是我现在所拥有的。此处EVENT_SCHEDULE是表名,event_date是事件的开始日期。

$where .= " AND ( ( " . EVENT_SCHEDULE . ".event_date >= '" . $next_week_start . "' AND " . EVENT_SCHEDULE . ".event_date <= '" . $next_week_end . "' ) OR ( " . EVENT_SCHEDULE . ".event_enddate >= '" . $next_week_start . "' AND " . EVENT_SCHEDULE . ".event_enddate <= '" . $next_week_end . "' ) ) ";

有人可以帮我查询查询的where条款吗?

2 个答案:

答案 0 :(得分:2)

假设正确计算了开始和结束变量 你应该可以使用

        $where .= "AND (" . 
EVENT_SCHEDULE . ".event_date <= '".$next_week_end."' AND " . 
EVENT_SCHEDULE . ".event_enddate >='" . $next_week_start."') ";

这是相同的代码,但在MySQL服务器上完成了日期计算 - 我假设这周是星期一到星期日

$where .= "AND (" . 
    EVENT_SCHEDULE . ".event_date <= date(Now()+interval 14-date_format(Now(),'%w') day) AND " . 
    EVENT_SCHEDULE . ".event_enddate >= date(Now()+interval 8-date_format(Now(),'%w') day)) ";

答案 1 :(得分:0)

我不知道你的字段event_date有什么数据类型,但是如果它是Unix时间你不应该创建一个人类可读的时间字符串,而是创建一个unix时间戳。但这取决于您的数据库方案。你没有提供实际问题。你提供的where子句对我来说很好。