繁体   English   中英

MySQL查询事件的日历

[英]MySQL query the events for a calendar

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

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

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

  • ID
  • ID_USER
  • BODY_NAME
  • BODY_START
  • BODY_END
  • 已经完成了
  • TIME_CREATED
  • TIME_UPDATED
  • TIME_DELETED

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))";

fullcalendar提供的开始和结束时间戳参数。

有一个问题:

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

例:

  • 编号f8a58d0c8280db2340863a1ac7aa60b0
  • ID_USER e576c22ce89f38ee422ec818807b99b8
  • BODY_NAME test_event
  • BODY_START 1422720000
  • BODY_END 1428422400
  • IS_DONE 0
  • TIME_CREATED 1422845255
  • TIME_UPDATED 0
  • TIME_DELETED 0

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

我怎样才能解决这个问题? 谢谢。

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

  BODY_START <= month_end and BODY_END >= month_start

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM