Ver Mensaje Individual
  #7 (permalink)  
Antiguo 01/08/2007, 12:19
Avatar de iislas
iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: Sigo con problemas con las fechas uy uy uy!

¿Que dije yo?

-- Se crea la funcion
CREATE FUNCTION fn_CalculaEdad (@fecha varchar(8))
RETURNS VARCHAR(50)
AS
BEGIN
declare @años as integer
declare @meses as integer
declare @dias as integer
--declare @fecha as datetime
declare @hoy as datetime


-- set @fecha = '19600407'
set @hoy = getdate()
set @años = datediff(yy, @fecha, @hoy)
if dateadd(yy, @años, @fecha) > @hoy set @años = @años - 1
set @fecha = dateadd(yy, @años, @fecha)
set @meses = datediff(mm, @fecha, @hoy)
if dateadd(mm, @meses, @fecha) > @hoy set @meses = @meses - 1
set @fecha = dateadd(mm, @meses, @fecha)
set @dias = datediff(dd, @fecha, @hoy)
set @fecha = dateadd(dd, @dias, @fecha)
--print 'Tu edad es de ' + ltrim(str(@años)) + ' años ' + ltrim(str(@meses)) + ' meses y ' + ltrim(str(@dias)) + ' días.'
RETURN(ltrim(str(@años)) + ' años ' + ltrim(str(@meses)) + ' meses y ' + ltrim(str(@dias)) + ' días.')
END

-- Para hacer referencia a ella
CREATE TABLE #ALUMNOS (Nombre VARCHAR(50), Fecha_Nacimiento VARCHAR(10))
INSERT INTO #ALUMNOS VALUES('ISAIAS ISLAS', '19600407')
INSERT INTO #ALUMNOS VALUES('ADRIANA MENDEZ', '19720205')
INSERT INTO #ALUMNOS VALUES('BRITNEY SPEARS', '19821004')


SELECT Nombre, dbo.fn_CalculaEdad(Fecha_Nacimiento) FROM #ALUMNOS

Resultados:

ISAIAS ISLAS 47 años 63 meses y 1851 días.
ADRIANA MENDEZ 35 años 65 meses y 1853 días.
BRITNEY SPEARS 24 años 57 meses y 1854 días.