Bases de Datos > Otras Bases de Datos

 Calcular Edad En Base A Fecha

(1/2) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa