代码之家  ›  专栏  ›  技术社区  ›  David Božjak

同一表中两次时间差

  •  1
  • David Božjak  · 技术社区  · 15 年前

    (请注意,我最近在StackOverflow上看到了类似的问题,但是我在任何地方都找不到它-如果有人能找到它,请发布链接)

    我有一个表,其中有一个日期时间字段。例如:

    表数据

    DateTime date;
    int number;
    

    我需要找出一行中的日期和下一行中的日期之间的区别。我尝试了一个查询:

    select date as current_date, date - (select top 1 date where date > current_date from data) as time_difference from date
    

    但是,由于“当前日期”,这不起作用。有没有一种方法可以通过一个查询来实现这一点?

    1 回复  |  直到 15 年前
        1
  •  3
  •   Quassnoi    15 年前
    SELECT  date AS current_date, next_date - date AS difference
    FROM    mytable mo
    CROSS APPLY
            (
            SELECT  TOP 1 date AS next_date
            FROM    mytable mi
            WHERE   mi.date > mo.date
            ORDER BY
                    date
            ) q