calculo edad
calculo edad
Hola:
He creado una tabla que incluye dos campos con formato FECHA (fecha_nacimiento y fecha_ingreso). ¿Es posible crear una consulta que incluya un campo que calcule la edad a partir de esos dos campos?
He creado una tabla que incluye dos campos con formato FECHA (fecha_nacimiento y fecha_ingreso). ¿Es posible crear una consulta que incluya un campo que calcule la edad a partir de esos dos campos?
-
- Mensajes: 99
- Registrado: Sab Dic 13, 2008 6:45 pm
Re: calculo edad
Si, usa la funcion the SQL DateDiff en ves de el campo
Ejemplo: DATEDIFF('yy',"fecha_nacimiento",CURRENT_DATE)
-->puedes indicar cualquier Alias en el siguiente renglon.
Ejemplo: DATEDIFF('yy',"fecha_nacimiento",CURRENT_DATE)
-->puedes indicar cualquier Alias en el siguiente renglon.
Re: calculo edad
Funcionó en parte.
Soy médico pediatra, y me interesa que la edad pueda mostrarse en años y meses (aunque sean en dos campos separados).
La expresión
DATEDIFF('yy',"fecha_nacimiento","fecha_ingreso")
me permitió calcular el número de años, aunque con el resultado redondeado. Así, un niño de 9 meses, mostró como resultado 1 (y no 0).
Lo pude resolver así:
DATEDIFF('mm',"fecha_nacimiento","fecha_ingreso") / 12
con lo que el resultado fue 0.
En ambos casos me quedó pendiente como calcular el número de meses.
¿Existe alguna función similar a TRUNC() que pueda usarse en el primer ejemplo?
¿Como puedo resolver el tema de los meses?
Soy médico pediatra, y me interesa que la edad pueda mostrarse en años y meses (aunque sean en dos campos separados).
La expresión
DATEDIFF('yy',"fecha_nacimiento","fecha_ingreso")
me permitió calcular el número de años, aunque con el resultado redondeado. Así, un niño de 9 meses, mostró como resultado 1 (y no 0).
Lo pude resolver así:
DATEDIFF('mm',"fecha_nacimiento","fecha_ingreso") / 12
con lo que el resultado fue 0.
En ambos casos me quedó pendiente como calcular el número de meses.
¿Existe alguna función similar a TRUNC() que pueda usarse en el primer ejemplo?
¿Como puedo resolver el tema de los meses?
-
- Mensajes: 99
- Registrado: Sab Dic 13, 2008 6:45 pm
Re: calculo edad
Para calcular los años puedes dividir el total de meses por doce
y para calcular los meses que sobran, pedes calcular el MODULO de los meses y 12.
Código: Seleccionar todo
DATEDIFF( 'mm', "DOB", CURRENT_DATE ) / 12
Código: Seleccionar todo
MOD( DATEDIFF( 'mm', "DOB", CURRENT_DATE ), 12 )
Re: calculo edad
Excelente. Funciona todo. Muchísimas gracias.
No pude encontrar como registrar esta consulta como resuelta.
Nuevamente muchas gracias.
No pude encontrar como registrar esta consulta como resuelta.
Nuevamente muchas gracias.
Re: calculo edad
Hola a todos. He seguido las instrucciones para el cálculo de la fecha pero me aparece el siguiente error:
No se pudieron cargar los contenidos de los datos.Estado SQL: 37000
Código de error: -16
Wrong data type: java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss.fffffffff in statement [SELECT "ID_PACIENTE", "NOMBRE", "APELLIDOS", "CUMPLEAÑOS", DATEDIFF( 'mm', "CUMPLEAÑOS", CURRENT_DATE ) / 12 AS "Años", MOD( DATEDIFF( 'mm', "CUMPLEAÑOS", CURRENT_DATE ), 12 ) AS "Meses" FROM "Pacientes" AS "Pacientes"]
El comando SQL que comporta este error es:
SELECT "ID_PACIENTE", "NOMBRE", "APELLIDOS", "CUMPLEAÑOS", DATEDIFF( 'mm', "CUMPLEAÑOS", CURRENT_DATE ) / 12 AS "Años", MOD( DATEDIFF( 'mm', "CUMPLEAÑOS", CURRENT_DATE ), 12 ) AS "Meses" FROM "Pacientes" AS "Pacientes"
Mi SO es un Mac OS X 10.5.2 y la versión del OO es la 3.0.1.
Sin embargo en windows XP me funciona perfectamente
¿Alguna ayuda de lo que puede estar pasando?
No se pudieron cargar los contenidos de los datos.Estado SQL: 37000
Código de error: -16
Wrong data type: java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss.fffffffff in statement [SELECT "ID_PACIENTE", "NOMBRE", "APELLIDOS", "CUMPLEAÑOS", DATEDIFF( 'mm', "CUMPLEAÑOS", CURRENT_DATE ) / 12 AS "Años", MOD( DATEDIFF( 'mm', "CUMPLEAÑOS", CURRENT_DATE ), 12 ) AS "Meses" FROM "Pacientes" AS "Pacientes"]
El comando SQL que comporta este error es:
SELECT "ID_PACIENTE", "NOMBRE", "APELLIDOS", "CUMPLEAÑOS", DATEDIFF( 'mm', "CUMPLEAÑOS", CURRENT_DATE ) / 12 AS "Años", MOD( DATEDIFF( 'mm', "CUMPLEAÑOS", CURRENT_DATE ), 12 ) AS "Meses" FROM "Pacientes" AS "Pacientes"
Mi SO es un Mac OS X 10.5.2 y la versión del OO es la 3.0.1.
Sin embargo en windows XP me funciona perfectamente
¿Alguna ayuda de lo que puede estar pasando?
Re: calculo edad
Ya lo he descubierto. Era una asignación mala de un campo. Muchas gracias a todos. Pld
-
- Mensajes: 3
- Registrado: Mar Jun 02, 2009 3:55 pm
Re: calculo edad
Pues sí, curiosamente DATEDIFF('yy',fecha1,fecha2) redondea los años.
Es decir
3 años y 2 meses ----> 3 años
3 años y 9 meses ----> 4 años
En cambio, por lo que he probado, para los meses no hay ese problema. No importa si son 10 o 20 días de diferencia que te dice que hay 0 meses de diferencia.
¿Será un comportamiento erróneo de DATEDIFF( ) para los años?
Es decir
3 años y 2 meses ----> 3 años
3 años y 9 meses ----> 4 años
En cambio, por lo que he probado, para los meses no hay ese problema. No importa si son 10 o 20 días de diferencia que te dice que hay 0 meses de diferencia.
¿Será un comportamiento erróneo de DATEDIFF( ) para los años?