Bases de Datos => Otras Bases de Datos => Mensaje iniciado por: El nuevo en Martes 13 de Diciembre de 2005, 23:54
Título: Calcular Edad En Base A Fecha
Publicado por: El nuevo en Martes 13 de Diciembre de 2005, 23:54
Hola a todos ?
Mi problema es el siguiente, tengo una BD con la informacion de los alumnos y sus fechas de nacimiento, sin embargo un reporte requiere que se muestren las edades, alguien sabe como puedo obtener a partir de la fecha de nacimiento la edad en SQL ? para obtener los resultados utilizo un StoredProcedure.
Gracias ! :hola:
Título: Re: Calcular Edad En Base A Fecha
Publicado por: jrsmith en Miércoles 14 de Diciembre de 2005, 01:17
Funciones que devuelven fechas:
Función Descripción
DATE o Devuelve la fecha de hoy.
TODAY Si hoy es 25/12/89, DATE() devuelve {12/25/89}
DATEVAL Convierte una cadena de caracteres a una fecha.
DATEVAL(‘01/30/89’) devuelve {01/30/89}
CTOD Convierte una cadena de caracteres a una fecha. Se puede utilizar un segundo parámetro para especificar el formato de la fecha devuelta: 0 (por defecto devuelve MM/DD/YY, 1 devuelve DD/MM/YY y 2 devuelve YY/MM/DD.
CTOD(‘01/30/89’) devuelve {01/30/89}
CTOD(‘01/30/89’,1) devuelve {30/01/89}
Ejemplos de funciones de fecha:
SELECT SUM(AUSENCIAS) FROM FALTASAL WHERE TODAY()-FECHA<= 5
Esta sentencia nos dirá el número total de horas ausencias de los alumnos en los últimos 5 días.
SELECT NOMBRE+' '+APELLIDOS, YEAR(TODAY()) - YEAR(FECHA_NACIMIENTO) FROM ALUMNOS
Mostrará a cada alumno con su edad en años (Cumplidos o que cumplirá)
Para tener en cuenta el mes y día actuales y calcular la edad sería:
IIF(MONTH(TODAY()) = MONTH(FECHA_NACIMIENTO) AND DAY(FECHA_NACIMIENTO) > DAY(TODAY()),
YEAR(TODAY())-YEAR(FECHA_NACIMIENTO) - 1, YEAR(TODAY())-YEAR(FECHA_NACIMIENTO))) FROM ALUMNOS
tomada de :devil: http://atenea.pntic.mec.es/centros/ies2000...ql.htm#opfechas (http://atenea.pntic.mec.es/centros/ies2000/sql/iessql.htm#opfechas)
Título: Re: Calcular Edad En Base A Fecha
Publicado por: El nuevo en Viernes 16 de Diciembre de 2005, 21:43
jrsmith Muchas gracias ya lo probe y funciona perfecto, muchas gracias !!
Título: Re: Calcular Edad En Base A Fecha
Publicado por: jrsmith en Martes 20 de Diciembre de 2005, 18:05
Por nada, fue un placer y un gusto haberte sido de utilidad :comp:
Título: Re: Calcular Edad En Base A Fecha
Publicado por: colacao en Sábado 7 de Enero de 2006, 00:28
Buenas, yo he intentado utilizar el IIF para calcular la edad en SQLSever y me da error pq dice que no reconoce esa funcion. Saben pq puede ser? Gracias. Ciaooooo
Título: Re: Calcular Edad En Base A Fecha
Publicado por: colacao en Sábado 7 de Enero de 2006, 01:31
Al final lo consegui. Investigando por ahi encontre el equivalente al IIF para SQL SERVER que es el CASE.
Código: Text
CASE WHEN MONTH(Fecha) > MONTH(GETDATE()) THEN (YEAR(GETDATE()) - YEAR(Fecha) - 1)
WHEN MONTH(GETDATE()) = MONTH(Fecha) AND DAY(Fecha) > DAY(GETDATE()) THEN YEAR(GETDATE()) - YEAR(Fecha) - 1