【问题标题】:the next closest date time from another column另一列的下一个最接近的日期时间
【发布时间】:2014-01-13 16:22:07
【问题描述】:

我有一张预订的桌子。基本上是公寓 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 语句中组合的出发日期和时间?

谢谢

【问题讨论】:

    标签: mysql date time subquery


    【解决方案1】:

    比较时使用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
    

    如果您不将时间分成单独的日期和时间列,事情会更容易。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多