Tienes al menos dos errores:
1) BETWEEN no es una función sino un operador de comparación que determina si una expresión dada está o no en un rango determinado.
Cita:
Iniciado por Manual de referencia expr BETWEEN min AND max
Si expr es mayor o igual que min y expr es menor o igual a max, BETWEEN retorna 1, de otro modo retorna 0. Esto es equivalente a la expresión (min <= expr AND expr <= max) si todos los argumentos son del mismo tipo. De otro modo la conversión de tipos tiene lugar según las reglas descritas al principio de la sección, pero aplicadas a todos los argumentos.
2) La hora 24:00:00 no existe a nivel de datos. El rango va de 00:00:00 a 23:59:59, lo que significa en realidad 86399 segundos, por lo que cuando se hacen operaciones con la hora en ese contexto es posible que haya que corregir los cálculos por 1 segundo.
La hora 24 no existe, porque es la hora 00 del día siguiente.
Entonces, la consulta quedaría
Ahora bien, existe un tercer posible error, que es conceptual: El rango que quieres es desde la 01:01:01 de la mañana del día 01/01/1990.. ¿Eso es correcto? Porque eso significa que hay una hora que no se analizará.
Otra detalle es que hay una forma más simple de hacerlo, si lo que quieres es que tome todos los valores comprendidos entre las dos fechas, sin importar la hora en que ocurran, y es:
Las dos consultas son equivalentes, pero la segunda es más simple de leer.