如果有预订时间,如何获取预订汽车的可用时间

时间:2019-05-17 15:50:27

标签: sql postgresql

我有桌预订车。

预订车

id int
carname  varchar
BookedStartTime datetime
BookedEndTime datetime

示例数据:

id    carname    BookedStartTime         BookedEndTime
1     Racer      08:00:00                8:30:00
2     Race       08:00:00                8:30:00
3     Racer      10:00:00                10:30:00
4     Race       9:00                    10:00:00

如果我将输入参数设置为

BookingTime  : 5:00:00    
DurationCode : 30 minutes

我想要postgresSql搜索所有预订在postgres Sql中有车。如果startTime和endTime不重叠,则用户预订(用户预订为5:00:00的意思是startTime:5:00:00,endTime为5:30:00),我要返回的时间预订为:booking_start_time:5:00: 00和booking_finish_timeis 5:30:00。如果重叠,我希望postgres在表中一直搜索,并获得最接近输入时间的空闲时间。 范例: 条件:预定时间:8:00:00(这是时间输入),持续时间在30分钟内。 结果:

id    carname    BookedStartTime(time can booking)    BookedEndTime(time can booking)
1     Racer      8:31:00                           9:01:00
2     Race       10:01                             10:31

因为我希望返回的时间最接近输入的时间(8:00:00),所以我选择

id    carname    BookedStartTime(time can booking)    BookedEndTime(time can booking)
  1     Racer      8:31:00                           9:01:00

并返回 booking_startTime:8:31:00和finish_time:9:01:00 。 我如何在Postgres SQL中执行此操作并返回booking_start_time和booking_finish_time

0 个答案:

没有答案