wjlopez,
antes que nada no pareces estar ordenando por el mismo campo que seleccionas (tal vez es un error).
aunque ya te han dado las pistas, te diré que si quieres buscar una fecha exacta, debes hacerlo con el igual, como te recomienda gustavoang, pero evitando los problemas de comparar un date con un datetime. Es decir, si el campo de MySQL es datetime
Código sql:
Ver originalSELECT * FROM basedat WHERE estado='2' AND DATE(fecha) = '2005-07-16'
y si te empeñas en usar el between, vigila lo que te ha dicho raulhg, pero puedes hacerlo con la función date en lugar de añadir las horas, minutos y segundos del rango.
Código sql:
Ver originalSELECT * FROM basedat WHERE estado='2' AND DATE(fecha) BETWEEN '2005-07-16' AND '2005-07-16'