MySQL事件,用于在存储的日期和时间添加预订

MySQL事件,用于在存储的日期和时间添加预订,mysql,events,Mysql,Events,我正在创建一个预订系统,其中一个要求是自动添加大量“常规”预订 我相信一个简单的解决方案是将所有成员的“常规”天数存储在一个表中,然后安排一个事件,检索所有记录并将每一行作为记录插入bookings表中 Regulars Table |id | memberid | time | day | group | ____________________________________________ | 1 | 42 | 08:00 | Monday| 2

我正在创建一个预订系统,其中一个要求是自动添加大量“常规”预订

我相信一个简单的解决方案是将所有成员的“常规”天数存储在一个表中,然后安排一个事件,检索所有记录并将每一行作为记录插入bookings表中

 Regulars Table

|id  | memberid  | time  |  day  |  group  |
____________________________________________
| 1  | 42        | 08:00 | Monday|  2      |
| 2  | 42        | 08:00 | Friday|  1      |
| 3  | 25        | 11:00 | Friday|  1      |
____________________________________________
由于日期存储为VARCHAR text,因此我需要一种方法将第二天生成为y/m/d。在PHP中,这将是日期('Y-m-d',strottime('next周二')

因此,我想知道实现以下目标的正确方法:

对于返回的每一行
将值(行[memberid]、行[time]、下一行[day]、行[group])插入到bookings(memberid、时间、日期、组)中。

此查询为您提供下一周的日期:

select id,
       memberid,
       t.time,
       date_add(curdate(), 
                interval 6 + 
                FIND_IN_SET(t.day,'Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday') 
                - weekday(curdate()) day) as nextWeekDay
       ,t.group         
from T

以下内容导致了错误:选择id、memberid、regularclasses.time、date\u添加(curdate(),间隔6+在集合中查找(t.day、'周一、周二、周三、周四、周五、周六、周日')-工作日(curdate())regularclasses.day)在下一个工作日,regularclasses.groupnumber from regularclasses | | | | | | | | | | |您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以获取下一个工作日使用的正确语法,第7行的regularclasses.groupnumber f将
egularclasses.day
之前的
更改为下一个星期的
天的
。它不是表中的DAY字段,而是函数中使用的
DAY
MYSQL关键字。这就是为什么不应该使用关键字作为表/字段名称(时间、日期等)的一个例子——有时可能会让人困惑。