Я использовал LAGOVER для вычисления разницы во времени, а затем использовал ROW_NUMBER, чтобы вычислять только каждую вторую строку. Затем я выбираю только строки с вычисленным значением. Это решение, конечно, довольно хрупкое, так как оно опирается на правильное количество строк без пропуска временной отметки.
SELECT employeeID, time
FROM (
SELECT employeeID,
CASE ROW_NUMBER() over (partition by employeeId ORDER BY checktime ASC) MOD 2
WHEN 1 THEN null
ELSE TIMEDIFF(checktime, LAG(checktime) over (partition by employeeId ORDER BY checktime ASC))
END as Time
FROM table1) t1
WHERE time IS NOT NULL