Bases de Datos > Otras Bases de Datos
Calcular Edad En Base A Fecha
El nuevo:
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:
jrsmith:
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:
SELECT NOMBRE+' '+APELLIDOS,
IIF(MONTH(FECHA_NACIMIENTO) > MONTH(TODAY()), YEAR(TODAY())-YEAR(FECHA_NACIMIENTO) - 1,
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
El nuevo:
jrsmith Muchas gracias ya lo probe y funciona perfecto, muchas gracias !!
jrsmith:
Por nada, fue un placer y un gusto haberte sido de utilidad :comp:
colacao:
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
Navegación
[#] Página Siguiente
Ir a la versión completa