Calculate Time Difference Between Two Rows

前端 未结 2 662
暖寄归人
暖寄归人 2020-12-12 15:07

I have a table that contains the following:

DataDate                 Value
2010-03-01 08:31:32.000  100
2010-03-01 08:31:40.000  110
2010-03-01 08:31:42.000          


        
相关标签:
2条回答
  • 2020-12-12 15:21

    A little tweak on Quassnoi's query if you prefer not to use a Subselect would be:

    SELECT
          DATEDIFF(second, LAG(dataDate) OVER (ORDER BY dataDate), dataDate)
    FROM  rows
    WHERE LAG(dataDate) OVER (ORDER BY dataDate) IS NOT NULL
    
    0 讨论(0)
  • 2020-12-12 15:36
    WITH    rows AS
            (
            SELECT  *, ROW_NUMBER() OVER (ORDER BY DataDate) AS rn
            FROM    mytable
            )
    SELECT  DATEDIFF(second, mc.DataDate, mp.DataDate)
    FROM    rows mc
    JOIN    rows mp
    ON      mc.rn = mp.rn - 1
    

    In SQL Server 2012+:

    SELECT  DATEDIFF(second, pDataDate, dataDate)
    FROM    (
            SELECT  *,
                    LAG(dataDate) OVER (ORDER BY dataDate) pDataDate
            FROM    rows
            ) q
    WHERE   pDataDate IS NOT NULL
    
    0 讨论(0)
提交回复
热议问题