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

Как да направя заявка за sql цикъл, за да проверя разликата между стойностите?

DECLARE @idFrom as int,
        @idTo as int,
        @gpsDateFrom as datetime,
        @gpsDateTo as datetime
DECLARE VehicleCursor CURSOR FAST_FORWARD FOR 
SELECT  vehicle_gps_id, 
        datetimeCol
FROM    yourtable
ORDER BY vehicle_gps_id
OPEN VehicleCursor FETCH NEXT FROM VehicleCursor INTO @idFrom, @gpsDateFrom
    FETCH NEXT FROM VehicleCursor INTO @idTo, @gpsDateTo
    WHILE @@FETCH_STATUS = 0 BEGIN 
        IF DATEDIFF(MI,@gpsDateFrom,@gpsDateTo) >5
        BEGIN
            --Break (your code here)
        END
        SET @idFrom = @idTo
        SET @gpsDateFrom = @gpsDateTo
        FETCH NEXT FROM VehicleCursor INTO @idTo, @gpsDateTo
    END 
CLOSE VehicleCursor 
DEALLOCATE VehicleCursor

Нещо подобно трябва да работи за вас. Това е курсор, който просто преминава през всичките ви колони, сравнявайки дати и часове. Можете да въведете каквото искате да направите в секцията с коментари след оператора if.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Неуспешно преобразуване при преобразуване от символен низ в уникален идентификатор

  2. Защо колоната TEXT връща само 4096 байта?

  3. Използване на GO в рамките на транзакция

  4. Java7 sqljdbc4 - SQL грешка 08S01 на getConnection()

  5. В SQL Server, как да създадете цикъл while в select