Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/02/2011, 11:37
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consultas entre fechas (mysql)

Cita:
el problema esta en que los datos de la fecha se guardaron en un campo varchar y con el siguiente formato "dd/m/aaaa" ejemplo: 14/2/2011, 14 de febrero del 2011, espero me puedan hayudar, ya intente con la funcion between, mayor y menor que , pero no funciona me trae las fechas tambien de otros años.
Clásico problema...
Lo que debes hacer es utilizar la función de conversión de cadenas a fechas STR_TO_DATE(), usando la configuración de cadena apropiada:

Código MySQL:
Ver original
  1. FROM tabla
  2. WHERE fechabuscada BETWEEN STR_TO_DATE(fechadesde, '%d/%m/%Y') AND STR_TO_DATE(fechahasta, '%d/%m/%Y');
de esa forma puedes hacer que compare correctamente contra un valor dado:

Código MySQL:
Ver original
  1. mysql> SELECT
  2.     ->   (NOW() BETWEEN STR_TO_DATE('01/01/2011', '%d/%m/%Y') AND STR_TO_DATE('01/03/2011', '%d/%m/%Y')) Resultado,
  3.     ->   STR_TO_DATE('01/01/2011', '%d/%m/%Y') DESDE,
  4.     ->   STR_TO_DATE('01/03/2011', '%d/%m/%Y') HASTA;
  5. +-----------+------------+------------+
  6. | Resultado | DESDE      | HASTA      |
  7. +-----------+------------+------------+
  8. |         1 | 2011-01-01 | 2011-03-01 |
  9. +-----------+------------+------------+
  10. 1 row in set (0.00 sec)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)