...pero en la hora 0:00:00 ya ha cambiado la fecha, es una lata andar con fecha de hoy, de mañana, etc...
No te vale algo así: fecha = :fecha and (hora between :hora1 and hora2)
En hora1 le pasas 21:00 (formato time), y en hora2 le pasas 23:59:59.999
Así usas un parámetro de fechas menos.
Saludos