• Jueves 14 de Noviembre de 2024, 22:44

Autor Tema:  Calcular Edad En Base A Fecha  (Leído 18308 veces)

El nuevo

  • Miembro activo
  • **
  • Mensajes: 50
  • Nacionalidad: mx
    • Ver Perfil
Calcular Edad En Base A Fecha
« en: Martes 13 de Diciembre de 2005, 23:54 »
0
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

  • Miembro MUY activo
  • ***
  • Mensajes: 127
    • Ver Perfil
Re: Calcular Edad En Base A Fecha
« Respuesta #1 en: Miércoles 14 de Diciembre de 2005, 01:17 »
0
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
Most people are so ungrateful to be alive, but not you, not any more...


     
PUMA DE CORAZON Y HASTA LA MUERTE

El nuevo

  • Miembro activo
  • **
  • Mensajes: 50
  • Nacionalidad: mx
    • Ver Perfil
Re: Calcular Edad En Base A Fecha
« Respuesta #2 en: Viernes 16 de Diciembre de 2005, 21:43 »
0
jrsmith Muchas gracias ya lo probe y funciona perfecto, muchas gracias !!

jrsmith

  • Miembro MUY activo
  • ***
  • Mensajes: 127
    • Ver Perfil
Re: Calcular Edad En Base A Fecha
« Respuesta #3 en: Martes 20 de Diciembre de 2005, 18:05 »
0
Por nada, fue un placer y un gusto haberte sido de utilidad :comp:
Most people are so ungrateful to be alive, but not you, not any more...


     
PUMA DE CORAZON Y HASTA LA MUERTE

colacao

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Re: Calcular Edad En Base A Fecha
« Respuesta #4 en: Sábado 7 de Enero de 2006, 00:28 »
0
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

colacao

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Re: Calcular Edad En Base A Fecha
« Respuesta #5 en: Sábado 7 de Enero de 2006, 01:31 »
0
Al final lo consegui. Investigando por ahi encontre el equivalente al IIF para SQL SERVER que es el CASE.

Código: Text
  1.  
  2. CASE WHEN MONTH(Fecha) &#62; MONTH(GETDATE()) THEN (YEAR(GETDATE()) - YEAR(Fecha) - 1)
  3. WHEN MONTH(GETDATE()) = MONTH(Fecha) AND DAY(Fecha) &#62; DAY(GETDATE()) THEN YEAR(GETDATE()) - YEAR(Fecha) - 1
  4. ELSE YEAR(GETDATE()) - YEAR(Fecha) END AS edad
  5.  
  6.  

Ciaoooo