将新时隙添加到时隙表

Posted

技术标签:

【中文标题】将新时隙添加到时隙表【英文标题】:Adding New Time slots to Time slots table 【发布时间】:2016-10-16 03:17:20 【问题描述】:

我正在开发派对预订系统,用户可以通过输入时间段来安排他的派对。如果用户输入的时隙介于现有时隙之间,则不应添加该时隙。 例如:我们有上午 10:00 至下午 12:00 的预订,如果新用户需要预订派对,则时间段表不应接受上午 10:00 至下午 12:00 之间的时间,也不应接受上午 9:30 至上午 11:00,也不应接受上午 10:00 至下午 12:30 以及上午 10:00 至上午 11:00

【问题讨论】:

你想在 sql 中做这个? 我在 mysql 中需要它 【参考方案1】:

您应该在表中使用两列,一列用于开始时间,一列用于结束时间,

//get this values from the db using a select statement
$start=$_POST['start_time']

$end=$_POST['end_time']
//get id from db using select statement 
$id=$_POST['id']



INSERT INTO table_party(start_time, end_time)
SELECT id FROM table_party
WHERE id='$id AND (start_time BETWEEN $start AND DATE_SUB($start,INTERVAL 30 MINUTE ))
AND (end_time BETWEEN $END AND DATE_SUB($end,INTERVAL 60 MINUTE ));

【讨论】:

这个餐桌派对属于什么? 我只是以 table_party 为例,您可以使用您在数据库中使用的任何表名,它是用户将预定时间插入的表 INSERT INTO mtimeslot(Start Time, End Time) 从 mtimeslot 中选择 TimeSlotID,其中 TimeSlotID='$TimeSlotID' AND (TIME( STR_TO_DATE( Start Time, '%h:%i %p' )) BETWEEN TIME( STR_TO_DATE( 开始时间, '%h:%i %p' )) AND DATE_SUB(TIME( STR_TO_DATE( 开始时间, '%h:%i %p' )),INTERVAL 30 MINUTE )) AND (TIME( STR_TO_DATE (EndTime, '%h:%i %p')) BETWEEN TIME(STR_TO_DATE(End Time, '%h:%i %p')) AND DATE_SUB(TIME( STR_TO_DATE(End Time, '%h:%i % p' )),INTERVAL 60 MINUTE )) and Party ID=15 and Party Area ID=8 and Org ID=100; 如果我使用上面的代码它不接受任何时间段 您需要将派对 ID 添加到所有表格中,使用格式 tablename.column 链接您的表格,这意味着如果派对区域来自另一个表格而 org 来自另一个表格,您可以说,WHERE table1.partyid=table2.partyid AND table3.partyid=table1.partyid

以上是关于将新时隙添加到时隙表的主要内容,如果未能解决你的问题,请参考以下文章

带有 Google 日历 API(时隙)React/NodeJS 的预约系统

时隙是啥?

NR 时隙配置

如何在每个时隙检测到最大条目时更改日历覆盖

根据区间值提取时隙

javascript 时隙