Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/07/2010, 15:20
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: AYUDA!! :( Consulta con la extracción de Registros con el AS

SI la fecha está realmente guardada como "dd/MM/aaaa", sería algo así:
Código MySQL:
Ver original
  1. FROM boletines_usuarios
  2.   genero = 'm' AND
  3.   (TIMESTAMPDIFF(YEAR, STR_TO_DATE(f_nacimiento, '%d/%m/%Y'), CURDATE()) BETWEEN 20 AND 25);
Por un lado, no se debe usar VARCHAR ni CHAR para almacenar fechas. Es un error gravísimo por las complicaciones que trae luego para realizar consultas basadas en fechas. Hacerlo para disponer la fecha en un formato español es innecesario, ya que eso se resuelve en la aplicación, o bien en las consultas, usando la función DATE_FORMAT().
Además, al usar un VARCHAR o CHAR estás usando mucho más espacio de disco para almacenar una fecha que lo que usarías si el campo fuese DATE o DATETIME. El doble de espacio en disco.

Por otro lado, la cláusula AS es obsoleta. No se necesita y sólo se usa por compatibilidad hacia DBMSs antiguos.

Tip: Hay más formas de solucionar la consulta, pero esta sería una de las más eficientes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)