postgresql 检查范围,但to_date应可用

6tqwzwtp  于 2023-03-17  发布在  PostgreSQL
关注(0)|答案(1)|浏览(114)

我想检查一个字段中给定范围之间的两个日期。它工作得很完美,除了一件事。
我有一个租车软件,人们可以选择什么时候租车
从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任何进一步

xwbd5t1u

xwbd5t1u1#

我希望我没理解错你的意思您希望排除范围的上限。如果是这种情况,请使用括号表示上限:

'[2023-03-22 09:00:00,2023-03-30 09:00:00)'::tstzrange
                                         ^
                                         |
                                       here

这不会与从2023-03-30 09:00:00开始的第二个范围重叠。

相关问题