Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/01/2011, 09:46
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

Buenos días SangrePura:

Creo que el problema puede estar en que no trunques las horas, por lo tanto el cálculo puede resultar incorrecto. Además, hay un detalle al dividir entre 365 y es que no estás tomando en cuenta los años bisiestos, esto también te puede acarrear problemas en la exactitud del cálculo. Yo en lo particular utilizo la función MONTHS_BETWEEN para el cálculo de fechas de esta manera:

Código SQL:
Ver original
  1. SELECT
  2. trunc(months_between(to_date(to_char(SYSDATE, 'dd/mm/yyyy'), 'dd/mm/yyyy'), to_date(to_char(CAMPO_FECHA, 'dd/mm/yyyy'), 'dd/mm/yyyy'))/12)
  3. FROM TABLA

Si observas tanto al CAMPO_FECHA como al SYSDATE le quito las horas haciendo una doble conversión, primero con TO_CHAR para dejar una cadena con el formato dd/mm/yyyy y luego una conversión a TO_DATE para regresar esta cadena a tipo Fecha, pero ya sin tomar en cuenta las horas y no tener errores de precisión. Es cuestión de hagas la prueba para ver si te funciona.

saludos
Leo.