Ver Mensaje Individual
  #7 (permalink)  
Antiguo 27/01/2009, 04:10
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Culculo de edad en meses

Dejo la consulta final sobre una tabla meses con los datos de referencia. Donde escribo @peso puedes poner cualquier dato numérico o valores traídos desde un formulario. Donde pongo @fechnac, lo mismo, pero debe ser la fecha de nacimiento entrecomillada o una variable (el orden debe ser año/mes/día con 4,2 y 2 dígitos, respectivamente. Todo lo hace MySQL.
Cita:
SELECT 2negED, 1negED, N, 1posED, 2posED, meses, @peso REFERENCIA, (CASE WHEN @peso BETWEEN 1negED AND 1posED THEN "N" WHEN @peso BETWEEN 2negED AND 1negED THEN "(-)1" WHEN @peso < 2negED THEN "(-)2" WHEN @peso BETWEEN 1posED AND 2posED THEN "(+)1" WHEN @peso > 2posED THEN "(+)2" ELSE "error" END)datofinal, '$fnac', (MOD( datediff( curdate( ) , '$fnac' ) , 30 ) )dias, (FLOOR( datediff( curdate( ) , '@fechnac' ) /30 ) + (CASE WHEN MOD( datediff( curdate( ) , '@fechnac' ) , 30 ) >=21 THEN 1 WHEN MOD( datediff( curdate( ) , '@fechnac' ) , 30 ) <11 THEN 0 ELSE 0.5 END ))nummeses FROM meses WHERE (FLOOR( datediff( curdate( ) , '@fechnac' ) /30 ) + (CASE WHEN MOD( datediff( curdate( ) , '@fechnac' ) , 30 ) >=21 THEN 1 WHEN MOD( datediff( curdate( ) , '@fechnac' ) , 30 ) <11 THEN 0 ELSE 0.5 END )) = meses.meses