Mysql: Calculate Time Difference Between Two Rows

planer_id 	planer_start  	 	planer_end (order by planer_end)
1 	 	2016-08-06 04:00:00 	2016-08-06 06:00:00
2 	 	2016-08-06 09:00:00 	2016-08-06 12:00:00
4 	 	2016-08-06 17:00:00 	2016-08-06 22:00:00
5 	 	2016-08-06 23:00:00 	2016-08-07 04:00:00
6 	 	2016-08-07 06:00:00 	2016-08-07 11:00:00
3 	 	2016-08-07 13:00:00 	2016-08-07 20:00:00
SELECT  T1.planer_id, 
	T1.planer_start,
	T1.planer_end, 
	MIN(T2.planer_start) as NEXT,
	TIMEDIFF(T1.planer_end,T1.planer_start) as Working,
	IFNULL(TIMEDIFF(MIN(T2.planer_start),T1.planer_end),'0')  as Delay
FROM    TABLE AS T1
	LEFT JOIN TABLE AS T2 ON
	T2.planer_start	 > T1.planer_end
	GROUP BY T1.planer_id ORDER BY planer_start
[0] => Array
        (
            [planer_id] => 1
            [planer_start] => 2016-08-06 04:00:00
            [planer_end] => 2016-08-06 06:00:00
            [NEXT] => 2016-08-06 09:00:00
            [Working] => 02:00:00
            [Delay] => 03:00:00
        )
 [1] => Array ( [planer_id] => 2 [planer_start] => 2016-08-06 09:00:00 [planer_end] => 2016-08-06 12:00:00 [NEXT] => 2016-08-06 17:00:00 [Working] => 03:00:00 [Delay] => 05:00:00 )
[2] => Array ( [planer_id] => 4 [planer_start] => 2016-08-06 17:00:00 [planer_end] => 2016-08-06 22:00:00 [NEXT] => 2016-08-06 23:00:00 [Working] => 05:00:00 [Delay] => 01:00:00 )
[3] => Array ( [planer_id] => 5 [planer_start] => 2016-08-06 23:00:00 [planer_end] => 2016-08-07 04:00:00 [NEXT] => 2016-08-07 06:00:00 [Working] => 05:00:00 [Delay] => 02:00:00 )
[4] => Array ( [planer_id] => 6 [planer_start] => 2016-08-07 06:00:00 [planer_end] => 2016-08-07 11:00:00 [NEXT] => 2016-08-07 13:00:00 [Working] => 05:00:00 [Delay] => 02:00:00 )
[5] => Array ( [planer_id] => 3 [planer_start] => 2016-08-07 13:00:00 [planer_end] => 2016-08-07 20:00:00 [NEXT] => [Working] => 07:00:00 [Delay] => 0 )