我想检查一个字段中给定范围之间的两个日期。它工作得很完美,除了一件事。
我有一个租车软件,人们可以选择什么时候租车
从2023年3月22日09:00:00至2023年3月30日09:00:00
如果有人从日期x到日期y租车,那么日期y(2023-03- 30 T09:00:00)应该是可用的,因为在日期y,汽车不在租赁和归还范围内。但在范围内,它说它存在。现在我如何对我的范围说日期y(to_date)是可用的?
to_date 2023-03- 30 T08:59:99 =已阻止(当然是因为它在范围内)2023-03- 30 T09:00:00 =已阻止//这应该是免费的(这在范围内,但它将汽车归还,因此此时它应该是免费的,但它在范围内,我如何才能使它不在范围内?2023-03- 30 T09:01:00 =免费//当然它是免费的,它不再在范围内
代码:
SELECT * FROM booking WHERE '[2023-03-22T09:00:00.000Z, 2023-03-30T09:00:00.000Z]'::tstzrange && booking_range
谢谢你的帮助Idk任何进一步
1条答案
按热度按时间xwbd5t1u1#
我希望我没理解错你的意思您希望排除范围的上限。如果是这种情况,请使用括号表示上限:
这不会与从
2023-03-30 09:00:00
开始的第二个范围重叠。