我有一张预订表。基本上是公寓id,到达日期,到达时间,离境时间,出发时间。 与每次出发相比,我需要知道下一次到达。 基于像this 这样的帖子,我有:
SELECT
departuredate,
departuretime,
(SELECT
MIN(TIMESTAMP(arrivaldate,arrivaltime))
FROM booking
AS next_booking
WHERE next_booking.arrivaldate > booking.departuredate
) AS n_a
FROM booking
只要出发和下一次最近到达不是在同一天并且相隔仅几个小时,这种方法就可以正常工作。
当然!我正在比较WHERE语句中的日期。
但是如何比较子查询的WHERE语句中的到达日期和时间以及出发日期和时间?
THX
答案 0 :(得分:0)
比较时使用TIMESTAMP()
组合日期和时间。
SELECT
departuredate,
departuretime,
(SELECT
MIN(TIMESTAMP(arrivaldate,arrivaltime))
FROM booking
AS next_booking
WHERE TIMESTAMP(next_booking.arrivaldate, next_booking.arrivaltime) > TIMESTAMP(booking.departuredate, booking.departuretime)
) AS n_a
FROM booking
如果您没有将时间分成不同的日期和时间列,那么事情会更容易。