Veamos:
no tiene mucho sentido porque el BETWEEN tiene dos parámetros nada más:
Entonces,
!= extra_info no forma parte de la sentencia.
Aquí lo que deberías hacer es poner las funciones correctas y no comparar valores
incompatibles.
Me explico: Por un lado, para que la comparación sea válida,
los tipos de datos deben ser iguales, y sabemos que
extra_info contiene un dato
mal escrito (un DATETIME no se debe
jamás guardar de esa forma), por lo que para que el BETWEEN haga lo que debe,
extra_info debe ser previamente convertido en un
DATETIME. Caso contrario, los resultados serán erráticos.
En segundo lugar, hubo si, un desliz: CURDATE() devuelve un DATE,
no un DATETIME, y eso es fundamental a la hora de comparar fechas.
MySQL, a partir de la versión 5.0 convierte los datos de fecha (DATE) en su
formato superior (DATETIME) cuando la comparación u operación contiene ambos. Esto significa que un resultado '2010-02-01', se convierte en '2010-02-01 00:00:00', si se compara contra un datetime. Como es obvio, esa conversión es inferior a una visita realizada a las '2010-02-01 00:00:01' y posteriores, que es lo que sucederá con la consulta tal como la planteamos originalmente. Por eso, cualquier visita realizada con posterioridad a la hora cero, no aparecerá en la tabla.
¿Cómo resolver el problema?
Simple:
Cambiando CURDATE() por NOW()...
¿Por qué cambio sólo uno y no los dos CURDATE()? , porque el problema está
en el límite superior y no en el inferior, ya que la conversión del primero pondrá, como te dije, las "00:00:00", con lo que abarcará todo el día.