我正在为我的工作编写一个脚本来租用自行车,但我不知道如何在 X 周期内检查自行车的可用性
数据库如下所示:
CustomerID BicycleID FromDATE TillDATE
43 12 2012-05-20 2012-05-23
43 14 2012-05-20 2012-05-23
44 12 2012-05-27 2012-05-30
44 15 2012-05-27 2012-05-30
在我签订新合同或预订检查或自行车在一段时间内可用之前,是否有我可以运行的脚本?
对此的任何帮助都会很棒,谢谢!
如果这些是简单的固定期限租赁,那么在"从"和"到"之间搜索可用性很简单
Select count(*) from hiresTable
where $From < TillDATE
and $Till > FromDATE
如果租赁条款不固定,这将不准确,因为两个雇员可能在搜索范围内并排。
我认为
如果您可以以时间戳(UNIX(格式存储日期,那么您可以轻松地使用> <=运算符来比较所需的租赁期和该自行车的不可用。
请参阅确定两个日期范围是否重叠:
若要测试两个周期是否重叠,请使用(StartDate1 <= EndDate2) and (StartDate2 <= EndDate1)
SELECT * FROM reservations WHERE ? <= TillDATE AND FromDATE <= ?
此查询中的第一个参数应为新预留的开始日期,第二个参数应为结束日期。
这将返回与新预订冲突的所有保留。