Если вы используете MySQL 8+, тогда LEAD
может использоваться здесь с DATEDIFF
:
SELECT
student_id,
date,
DATEDIFF(LEAD(date) OVER (ORDER BY date), date) AS Time_difference
FROM yourTable
ORDER BY date;
В более ранних версиях MySQL мы можем использовать коррелированный подзапрос в место LEAD
:
SELECT
student_id,
date,
DATEDIFF(
(SELECT t2.date FROM yourTable t2 WHERE t2.date > t1.date
ORDER BY t2.date LIMIT 1),
date) AS Time_difference
FROM yourTable t1
ORDER BY date;