我的预订表格有两张桌子。一张表有书号(1-10)和状态;所有状态最初都是“可用的”。
第二个表具有reserver和date字段的名称(签入,签出),并且两个表都与外键相关联。因此table1到table2具有一对多的关系;意味着许多学生可以保留一本书。
问题:
当我收到预订请求时,假设book1;然后该book1的状态应该更改为该日期时间的“Oh Hold”(在table1上)。当第二个请求来自同一本书1时,在相同的日期范围内或与日期重叠,它必须告诉某些消息,例如此日期已经保留或类似,因此第二个请求者不能在同一本书的同一日期保留,但他可以请求另一本书。
如何检查已存在的sql表日期到当前输入日期?
非常感谢您的回复。
谢谢,
答案 0 :(得分:1)
基本上你会看到这个日期模式:
这样的事情会找到当前的预订:
SELECT *
FROM reservations
WHERE book = @bookId
AND (
(@dat_ini BETWEEN begin_date AND end_date)
OR (@dat_end BETWEEN begin_date AND end_date)
OR (@dat_ini < begin_date AND @dat_end > end_date)
)