0

我正在为我的自行车租赁工作编写脚本,但我不知道如何检查 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

在我签订新合同或预订以检查或自行车在一段时间内可用之前,我是否可以运行脚本?

对此的任何帮助都会很棒,谢谢!

4

3 回答 3

1

如果这些是简单的固定期限租赁,那么在 From 和 Till 之间搜索可用性很简单

Select count(*) from hiresTable
where $From < TillDATE
and $Till > FromDATE

如果租赁条款不固定,这将不准确,因为两个雇员可能并排在搜索范围内。

于 2017-07-23T16:23:20.747 回答
0

我认为如果您可以以TIMESTAMP ( UNIX ) 格式存储日期,那么您可以轻松地使用 > < = 运算符来比较所需的租赁期限和该自行车的不可用情况。

于 2012-05-20T14:47:22.537 回答
0

请参阅确定两个日期范围是否重叠

要测试两个时段是否重叠,请使用(StartDate1 <= EndDate2) and (StartDate2 <= EndDate1)

SELECT * FROM reservations WHERE ? <= TillDATE AND FromDATE <= ?

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

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

于 2012-05-20T14:42:17.427 回答