Ваша табличная схема hour
равна varchar
, вам нужно разыграть как время, затем выполнить расчет
SELECT datediff(hour,min(cast(hour as time)),max(cast(hour as time)))
FROM Timetable
sqlfiddle
Примечание
Я бы предложил ваш столбец hour
как datetime
или time
вместо varchar
. потому что hour
намерение столбца - это время.
EDIT
Если ваше время 9:00 to 17:30
, вы можете попытаться использовать datediff
минута, чтобы получить общее количество различий, а затем разделить 60, чтобы получить часы.
SELECT datediff(minute,min(cast(hour as time)),max(cast(hour as time))) / CAST(60 as float)
FROM Timetable
https://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=6e005cdfad4eca3ff7c4c92ef14cc9c7