Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Изчислете разликата във времето между два реда

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

В 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Инсталиране на SQL Server 2017

  2. Промяна на задача на агент на SQL Server (T-SQL)

  3. Създайте задание за агент на SQL Server с помощта на SSMS

  4. Проверете дали таблицата съществува в SQL Server

  5. Защо и кога трябва да използвам SPARSE COLUMN? (SQL SERVER 2008)