MySQL 查询日历的事件

MySQL query the events for a calendar

我正在使用 MySQL & PHP 构建 SaaS 日历。

前端javascript日历库为fullcalendar(月视图) http://fullcalendar.io/

我有一个名为 events 的 mysql 数据 table,如下所示:

BODY_STARTBODY_END 正在使用 unix_timestamp。

然后在我的 PHP 代码中,我构建了一个生成 SQL 的查询助手,例如:

"SELECT * FROM `" . $this->_tableName . "` WHERE `ID_ACCOUNT` = '$_id_account' AND (( `BODY_START` >= 1424649600 AND `BODY_START` <= 1428278400 ) OR (`BODY_END` >= 1424649600 AND `BODY_END` <= 1428278400))";

完整日历提供的开始和结束时间戳参数。

有一个问题:

如果事件跨越当前月份,则不会显示。

示例:

如果您进行查询,则不会显示此事件。

我该如何解决这个问题?谢谢。

如果我理解正确,请将您的查询简化为(伪代码):

  BODY_START <= month_end and BODY_END >= month_start

您上面的原始查询查询要求事件必须在该月开始或结束,但这实际上不是您想要的 - 您想要 存在 的任何事件的任何部分这个月。