我有桌预订车。
预订车
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