mysql - 如何根据sql中最近的时间比较2条记录

标签 mysql sql-server

有两个表 第一个有预定时间

BusDepartureStation   ArrivalStation  DepartureTime
A                         B             10:00
A                         B             13:00
C                         D             18:00
C                         D             22:00

第二个表有实际时间

BusDepartureStation   ArrivalStation  DepartureTime
A                         B             10:15
A                         B             13:30
c                         D             18:10
C                         D             22:00

最佳答案

select
    s.BusDepartureStation, s.BusArrivalStation, s.DepartureTime,
    dateadd(
        mi,
        min(case
            when d.DepartureTime >= s.DepartureTime
            then datediff(mi, s.DepartureTime, d.DepartureTime), s.DepartureTime)
            else null
        end),
        s.DepartureTime
    ) as NextNearestDepartureTime
from Scheduled s inner join Departed d
    on      d.BusDepartureStation = s.BusDepartureStation
        and d.ArrivalStation = s.ArrivalStation
group by
    s.BusDepartureStation, s.BusArrivalStation, s.DepartureTime

为此,我假设您的出发时间永远不会提前,并且较早的预定出发时间总是先于随后的巴士出发。如果我对 SQL Server 的假设不正确,您应该能够调整时差逻辑以使用 MySQL 函数。

关于mysql - 如何根据sql中最近的时间比较2条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33843572/

相关文章:

sql - Quick SELECT 有时会超时

sql-server - SQL Server : Hidden risks of using DBCC SHRINKFILE

mysql - 无法使用 Confluent REST API 运行 JDBC 源连接器

Python将字母数字字符串列表插入数据库

mysql - SQL 中的 if 语句和

sql-server - 将 SQL Server varbinary 字段转换为字符串?

sql - 有人可以解释这个 SQL Server 代码吗?

c# - 如何在允许良性 SQL 注入(inject)的同时防止恶意 SQL 注入(inject)攻击?

mysql - 在 MySQL 中使用登录时间戳统计活跃用户

sql - 查询优化