我需要确认预订方面的帮助。我已经预订了项目,我需要在特定日期之间获取所有项目。
我使用时间戳记是因为我需要以分钟为单位获取所有订单。
tbl_reservation
orderid | itemid | quantity | from | to
Order 1: from 16-12-2018 00:00 to 23-12-2018 23:59
Order 2: from 21-12-2018 20:00 to 24-12-2018 20:01
SELECT itemid,
SUM(quantity) AS sum
FROM tbl_order_reservation
WHERE ( "orderid" <> '18112021270001hcr1' ) AND ( "itemid" IN (
'18111318230001hlk1'
) ) AND (
"from" >= '2018-11-21 20:00:00'
AND "to" <= '2018-11-24 20:01:00' OR "from" BETWEEN '2018-11-21 20:00:00'
AND '2018-11-24 20:01:00' OR
"to" BETWEEN '2018-11-21 20:00:00' AND '2018-11-24 20:01:00'
)
GROUP BY "itemid"
现在,如果我想更改日期或向订单添加新项目,并且需要确认预订订单中是否有可用数量。但是我的查询在 from 和 to 列之间缺少 mydate 这样的条件。有可能吗?
所以我需要查询我只知道从和到的地方,但是如果在表中的两个日期之间,我不知道为此写条件。
查询
from 17-12-2018 14:00 to 17-12-2018 17:00
,此查询必须得出1的顺序,因此该顺序在date from 16-12-2018 00:00 to 23-12-2018 23:59
有可能吗?
非常感谢!
答案 0 :(得分:1)
据我了解,您想要OVERLAPS
SELECT * FROM tbl_reservation
WHERE OVERLAPS('17-12-2018 14:00'::TIMESTAMP,
'17-12-2018 17:00'::TIMESTAMP,
"from", "to") ;