查看租赁可用性


Check availability for rentals

我正在为我的工作编写一个脚本来租用自行车,但我不知道如何在 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 <= ?

此查询中的第一个参数应为新预留的开始日期,第二个参数应为结束日期。

这将返回与新预订冲突的所有保留。