Cita:
Empezado por rruffino
Hola, estoy haciendo un procedimiento almacenado que me calcule la edad de una persona conociendo (o no) su fecha de nacimiento.
|
Me parece que algo falla aquí. ¿Cómo se supone que se puede saber la edad de una persona si se desconoce su fecha de nacimiento?
Cita:
Empezado por rruffino
Les comento, como la fecha de nacimiento puede ser nula, utilizo la funcion COALESCE para obtener una fecha de nacimiento. Luego la idea es a la fecha actual (CURRENT_DATE) restarle esa fecha y posteriormente extraer el año de esa fecha. El tema es que me tira error cuando hago la resta entre las fechas. He buscado por la web pero no encuentro mucho, o lo que encuentro no da resultados. Adjunto el codigo del procedimiento. Gracias!!
Código SQL [-] fecha_ini=coalesce(:fecha_nacimiento, CURRENT_DATE); tmp=CURRENT_DATE; tmp=:tmp - :fecha_ini; edad=EXTRACT(YEAR from :tmp); SUSPEND;
|
Si fuera nula en fecha ini tendrías justamente la FECHA ACTUAL. Como en tmp también tienes la fecha actual, dicha resta queda en cero. Es obvio que eso no calcula la edad... Replantéate la lógica.
Saludos,