I have a table in mysql like this:
+------------+------------+------------+------------+
| date | user_id | start_hour | end_hour |
+-----------
Try this Query i hope its work for you.....
SELECT
a.id,
a.end_hour AS `Free time Start`,
la.start_hour AS `Free Time End`,
IFNULL(TIMEDIFF(la.start_hour, a.end_hour),'00:00:00') AS `Total Free Time`
FROM appointment AS a
LEFT JOIN (SELECT *
FROM appointment
LIMIT 1,18446744073709551615) AS la
ON la.id = (SELECT
id
FROM appointment
WHERE id NOT IN(a.id)
ORDER BY (a.id > id)ASC
LIMIT 1);