gpt4 book ai didi

用于查询重复日历事件的 SQLite 语句

转载 作者:行者123 更新时间:2023-12-04 03:59:57 25 4
gpt4 key购买 nike

我正在设计一个日历应用程序,它重复无、每日、每周、每月和每年。
我的要求之一是 “没有两个事件应该重叠”
我存储数据的表的名称

Events



领域

dtstart - Event StartTime

dtend - Event End Time



考虑以下两种情况,

Event1 15th Aug 3:00 PM - 4:00 PM Recurrence-None

Event2 15th Aug 2:00 PM - 5-00 PM Recurrence-None



在上述情况下,以下 SQL 查询就像魅力一样

String sqlQuery = "SELECT * FROM Events WHERE dtstart AND dtend BETWEEN %d AND %d";

sqlQuery = String.format(sqlQuery, dtstart, dtend);



现在,考虑案例二。

Event1 15th Aug 3:00 PM - 4:00 PM Recurrence-Daily upto 20th Aug

Event2 18th Aug 2:00 PM - 5-00 PM Recurrence-None



如果两个我的 sqlQuery 失败,因为它会检查同一日期(8 月 18 日)的事件开始和结束时间。就我而言,我的查询应显示 8 月 15 日的冲突时间。

请帮助我进行 SQL 查询,以便检查重复发生的事件。

In the events table, I store start time, end time, date of last occurance and occurance type.



数据库方案如下

Table Name : Events

Title | dtstart | dtend | repeat Type | last Occurrence

最佳答案

我想不出一个 SQL 语句可以检查重复发生的重叠事件,但这里有一些建议。

  • 如果您所有的重复事件都有明确的结束日期,您可以创建一个表 EventInstanceEventID 组成, StartTimeEndTime .那你写AFTER INSERT , AFTER UPDATEAFTER DELETE在您的 Event 上触发用于更新存储在 EventInstance 中的所有实例的表.那么你的查询就可以用在EventInstance上 table 。但是 tbh,我对 SQLite 没有任何经验,所以我不知道它是否支持触发器。
  • 在数据库中编写一个存储过程,用过程代码检查它(如果 SQLite 支持,再次检查)
  • 检查 Java 代码中的重叠事件。
  • 关于用于查询重复日历事件的 SQLite 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6940701/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com