Either something like this:
...
WHERE
(DATEPART(hh, some_date) BETWEEN 10 AND 16)
OR
(DATEPART(hh, some_date) = 9 AND DATEPART(mi, some_date) >= 30)
OR
(DATEPART(hh, some_date) = 17 AND DATEPART(mi, some_date) <= 30)
alternatively:
...
WHERE
LEFT(CONVERT(VARCHAR, some_date, 8), 5) >= '09:30' AND
LEFT(CONVERT(VARCHAR, some_date, 8), 5) <= '17:30'
or even:
...
WHERE
LEFT(CONVERT(VARCHAR, some_date, 8), 5) BETWEEN '09:30' AND '17:30'
No index can be used for this any of these queries. To use an index, pre-compute the values some way or other and store them in an indexed column.