Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/11/2009, 05:34
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: Cómo comparar con parte de un resultado??

Bueno, la sintaxis correcta sería usar un campo DATE y no un CHAR para almacenar una fecha. Sería mucho más simple.
Ahora, para poder hacer la búsqueda tendrás que usar funciones que operarán bien o mal según lo bien o mal que estén guardadas las fechas en la base.
Me explico: Si la fecha está guardada como "31/12/2009", estaríamos frente a un buen estándar y puedes usar MID() o STR_TO_DATE():
Código sql:
Ver original
  1. MID(campo, 3, 2)
  2. STR_TO_DATE(campo, '%d/%m/%Y')
Pero si se guardó algo como esto: "9/5/2009", la función MID() ya no sirve de esa forma, porque esto:
Código sql:
Ver original
  1. MID(campo, 3, 2)
daría esto:
Cita:
"5/"
Mi sugerencia, por cuestiones de prevención es usar la conversión de cadenas a fechas (STR_TO_DATE(campo, formato)), ya que definir una fecha implicaría algo así:
Código sql:
Ver original
  1. SELECT *
  2. FROM tabla
  3. WHERE MONTH(STR_TO_DATE(FECHA, '%d/%m/%Y')) = 1;
para obtener las fechas correspondientes a enero, por ejemplo
En cualquier caso que sea, deberás asegurarte de que los usuarios no puedan entrar fechas con un formato incorrecto.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)