Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

para saber la edad

Estas en el tema de para saber la edad en el foro de Mysql en Foros del Web. hola, tengo una duda, es q no se como terminar esta consulta: Código: $sql = 'SELECT `nombre`,`entidad`, (YEAR(CURRENT_DATE)-YEAR(`fecha`)) - (RIGHT(CURRENT_DATE,5) < RIGHT(`fecha`,5)) AS `edad` FROM ...
  #1 (permalink)  
Antiguo 04/05/2010, 13:02
Usuario no validado
 
Fecha de Ingreso: marzo-2007
Mensajes: 238
Antigüedad: 15 años, 4 meses
Puntos: 5
para saber la edad

hola, tengo una duda, es q no se como terminar esta consulta:

Código:
$sql = 'SELECT `nombre`,`entidad`, (YEAR(CURRENT_DATE)-YEAR(`fecha`)) -
(RIGHT(CURRENT_DATE,5) < RIGHT(`fecha`,5)) AS `edad` 
FROM `altorend` WHERE `fecha` IS NOT null;';

Es que hay registros que no tienen fecha (p.e. 1998-05-02) el campo es: fecha DATE NULL, asi es que es opcional o no guardar la fecha, pero al realizar la consulta en los campos que no guardo fechas el registro queda asi: 0000-00-00 y entonces de esos no me permite saber la edad.

Como puedo omitir esas consultas? de los que no tienen fecha?
  #2 (permalink)  
Antiguo 04/05/2010, 14:24
Usuario no validado
 
Fecha de Ingreso: marzo-2007
Mensajes: 238
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: para saber la edad

Bueno creo que me quedo asi, no se si este bien esta opcion, cuando fefha guarda 0000-00-00:
Código:
$sql = 'SELECT `nombre`,`entidad`, (YEAR(CURRENT_DATE)-YEAR(`fecha`)) -
(RIGHT(CURRENT_DATE,5) < RIGHT(`fecha`,5)) AS `edad` 
FROM `altorend` WHERE YEAR(`fecha`) != 0000;';
Consigo la lista de los que SI guarda la fecha de cumpleaños:
Juan - 26
Alicia - 15
Samuel - 21
...

Ahora mi pregunta, si quisiera mostrar todos, incluyendo los que no tienen fecha de cumple? que mostrara un 'no disponible' cuando es 0000-00-00

Juan - 26
Alicia - 15
Samuel - 21
Isaac - no disponible
Alex - 19
...
  #3 (permalink)  
Antiguo 04/05/2010, 14:42
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 14 años, 3 meses
Puntos: 300
Respuesta: para saber la edad

La consulta sería algo así.

SELECT `nombre`,`entidad`, IF((`fecha`= '0000-00-00','no disponible',(YEAR(CURRENT_DATE)-YEAR(`fecha`)) -
(RIGHT(CURRENT_DATE,5) < RIGHT(`fecha`,5))) AS `edad`
FROM `altorend`

No la he probado. He eliminado código PHP.
  #4 (permalink)  
Antiguo 04/05/2010, 15:15
Usuario no validado
 
Fecha de Ingreso: marzo-2007
Mensajes: 238
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: para saber la edad

Si!, me sirvió GRACIAS!

asi quedo:

SELECT `nombre`,`entidad`, IF(`fecha`= '0000-00-00','no disponible',
(YEAR(CURRENT_DATE)-YEAR(`fecha`)) - (RIGHT(CURRENT_DATE,5) < RIGHT(`fecha`,5))) AS `edad` FROM `altorend`

Etiquetas: edad
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:19.