我正在设计一个日历应用程序,它重复无、每日、每周、每月和每年。我的要求之一是“没有两个事件应该重叠” 我存储数据的表的名称
活动
字段
dtstart - 事件开始时间
dtend - 事件结束时间
考虑以下两种情况,
事件 1 8 月 15 日下午 3:00 - 下午 4:00 重复 - 无
Event2 8 月 15 日 2:00 PM - 5-00 PM 复发-无
在上述情况下,下面的 SQL 查询就像魅力
String sqlQuery = "SELECT * FROM Events WHERE dtstart AND dtend BETWEEN %d AND %d";
sqlQuery = String.format(sqlQuery, dtstart, dtend);
现在,考虑案例二。
活动 1 8 月 15 日下午 3:00 - 下午 4:00 重复 - 每天至 8 月 20 日
Event2 8 月 18 日 2:00 PM - 5-00 PM 复发-无
如果两个我的 sqlQuery 失败,因为它会检查同一日期(8 月 18 日)的事件开始和结束时间。就我而言,我的查询应该显示 8 月 15 日的冲突时间。
请帮助我进行 SQL 查询,以便检查重复发生的事件。
在事件表中,我存储开始时间、结束时间、上次发生日期和发生类型。
数据库方案如下
表名:事件
标题| 开始| 关注 | 重复类型| 最后一次