Hi satabeach,
To get proper total hour you need to save with Date. Only Time its not possible to calculate proper Hours.
For Example your last record where intime is 23:00 and out time is 1:00. For this case if you calculate the difference then you will get hour as -22:00 which is not valid.
Check this example. Now please take its reference and correct your code.
SQL
DECLARE @startTime DATETIME, @endTime DATETIME
SELECT @startTime = '2018/02/20 23:30',@endTime='2018/02/21 1:00'
SELECT CONVERT(VARCHAR(5),DATEDIFF(s, @startTime, @endTime)/3600)
+ ':'
+ CONVERT(VARCHAR(5),DATEDIFF(s, @startTime, @endTime)%3600/60) AS [Total hour workded]
Output
1:30