【问题标题】: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 中需要它

标签: mysql if-statement join sql-order-by workbench


【解决方案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
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多