距离另一列的下一个最接近的日期时间

时间:2013-12-25 23:23:08

标签: mysql date time subquery

我有一张预订表。基本上是公寓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

1 个答案:

答案 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

如果您没有将时间分成不同的日期和时间列,那么事情会更容易。