Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/03/2013, 10:02
yosoloyo
 
Fecha de Ingreso: mayo-2008
Mensajes: 156
Antigüedad: 16 años
Puntos: 0
Consulta con fecha, edad y un if

Buenas a todos!!

Tengo un campo de usuarios en los que quiero sacar el nombre del usuario, la edad de este (a través de la fecha de nacimiento) y la fecha de nacimiento.

La tabla es:

Código MySQL:
Ver original
  1. Usuarios {id, nombre, fechanacimiento, edad}

El campo Edad la uso por defecto para aquellos usuarios que no introdujeron su fecha de nacimiento en el alta como usuario. Es un entero y es un dato no actualizado para fechas de nacimiento nulas (0000-00-00) pero que recoge la edad de forma automatica sacada de la fecha de nacimiento del usuario. Digamos que es un campos omitible pero que me sirve para otras cosas que no vienen al caso en esta consulta que os hago.

Hago la siguiente consulta:

Código MySQL:
Ver original
  1. SELECT id, nombre,
  2. IFNULL(TIMESTAMPDIFF(YEAR, fechanacimiento, CURRENT_DATE), edad) as edadusu
  3. FROM usuarios
  4. WHERE edad between 20 and 30
  5. ORDER BY edadusu ASC

Y aquí viene mi pregunta......... si al no estar el campo EDAD actualizado, como puedo poner en una consulta WHERE un between que haga un timestampdiff con la fecha de nacimiento. Es decir, sacar en tiempo real a partir de la fecha de nacimiento, los usuarios entre 20 y 30 años, dado que si pongo WHERE edadusu da error de expresión. Sin embargo luego en el ORDER BY si se pone si lo ordena correctamente. Vamos no reconoce en el WHERE el alias edadusu y al poner el TIMESTAMPDIFF en el WHERE también da error de sintaxis.

Espero haberme explicado. Un saludo. Gracias!!

Última edición por yosoloyo; 31/03/2013 a las 10:37