It looks like your time is a text string rather than a
date/time field. Is that right? That can make it harder.
Your idea of a loop is okay, but you'd want to start by
creating a time object for the start time, then convert it into a
string. You'd also want to query the database inside the loop, to
get the names of the matching start time.
<CFLOOP INDEX="hour" FROM="8" TO="22">
<CFSET StartTime=CreateTime(hour, 0, 0)>
<CFQUERY NAME="GetClients" DATASOURCE="iluvcricket">
SELECT * FROM Appoint_Table c
WHERE c.Time_ID = '#TimeFormat(StartTime, "hh:mm")#'