Ver Mensaje Individual
  #8 (permalink)  
Antiguo 06/01/2011, 13:26
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 9 meses
Puntos: 447
Respuesta: Calcular la edad con SQL

Cita:
Iniciado por SangrePura Ver Mensaje
Qué tal Leonardo,

Bueno comentarte que la consulta funciona perfecto! La he probado y no me cambia la edad hasta las 00hs 00' 00'', lo cual indica que es 100% precisa.

Iwalmente la estoy estudiando un poco porque entre tanta conversión me he perdido un poco

Agradezco tu colaboración y que tengas un excelente 2011!
Hola de Nuevo SangrePura:

Voy a tratar de explicar un poco las conversiones, para que te queden claro.

En primer lugar está la función TRUNC(argumento) esta función sirve para quitar los decimales que se generan al hacer la división. A la función de se le envía como parámetro la división de los meses comprendidos entre las dos fechas y 12 (los meses del año).

La función MONTHS_BETWEEN(fecha1, fecha2) recibe como parámetro dos fechas o date (fecha actual y fecha de nacimiento). Es justamente en esta función donde es necesario hacer la conversión, se tiene esto

Código:
to_date(to_char(CAMPO_FECHA, 'dd/mm/yyyy'), 'dd/mm/yyyy')
descomponiendo esto, en primer lugar tenemos que

Código:
to_char(CAMPO_FECHA, 'dd/mm/yyyy')
convierte una fecha a caraccter (eliminando las horas y dejándola en el formato dd/mm/yyyy) ahora bien, como la función MONTHS_BETWEEN necesita que se envíe como parámetro una fecha, lo único que hay que hacer es convertir el resultado anterior nuevamente a fecha, con TO_DATE... suena algo complicado, pero si lo analizas un poco creo que es bastante comprensible.

saludos.
Leo.