Edad

10/01/2005 - 17:49 por anonimo | Informe spam
Una ayudita, si tengo un campo donde almaceno la fecha de nacimiento de un
usuario, en conjunto con la funcion getdate o con otra funcion hay la
posibilidad de saber la edad de los usuarios, gracias.

(teniendo en cuenta que sacar la diferencia de años no es la mejor manera)

Preguntas similare

Leer las respuestas

#1 Josep Solà
10/01/2005 - 17:57 | Informe spam
Prueba con la función Datediff(year,FechaNacimiento,GetDate())
Té darà la diferencia de años. Puedes modificar el primer paràmetro a "day"
y luego ajustar el cálculo a tus necesidades

"anonimo" escribió en el mensaje
news:
Una ayudita, si tengo un campo donde almaceno la fecha de nacimiento de un
usuario, en conjunto con la funcion getdate o con otra funcion hay la
posibilidad de saber la edad de los usuarios, gracias.

(teniendo en cuenta que sacar la diferencia de años no es la mejor manera)
Respuesta Responder a este mensaje
#2 anonimo
10/01/2005 - 18:23 | Informe spam
lo que pasa es, digamos que su fecha de nacimiento es 11/10/1982, al aplicar
datediff el resultado es 23, cuando aun tiene 22 años, nose si habra alguna
manera de obtener la edad verdadera.

"Josep Solà" wrote:

Prueba con la función Datediff(year,FechaNacimiento,GetDate())
Té darà la diferencia de años. Puedes modificar el primer paràmetro a "day"
y luego ajustar el cálculo a tus necesidades

"anonimo" escribió en el mensaje
news:
> Una ayudita, si tengo un campo donde almaceno la fecha de nacimiento de un
> usuario, en conjunto con la funcion getdate o con otra funcion hay la
> posibilidad de saber la edad de los usuarios, gracias.
>
> (teniendo en cuenta que sacar la diferencia de años no es la mejor manera)



Respuesta Responder a este mensaje
#3 Isaías
10/01/2005 - 18:46 | Informe spam
Si no mal recuerdo, este codigo tiene derechos reservados
de Javier Loria, si no, mil disculpas para el autor:

DECLARE @birthday datetime, @d datetime
SELECT @birthday = '04/07/1960', @d = getdate()
SELECT datediff(yy, @birthday, @d) -
(case WHEN (datepart(m, @birthday) > datepart(m,
@d)) OR
(datepart(m, @birthday) = datepart
(m, @d) AND
datepart(d, @birthday) >
datepart(d, @d))
THEN 1
ELSE 0
end) AS Age1
SELECT year ( dateadd( dd, datediff ( dd , @birthday ,
@d ) ,
'1900-01-01 00:00' ) ) - 1900
IF ( year ( @d ) % 400 = 0 ) Or
( year( @d ) % 4 = 0 AND year ( @d ) % 100 <> 0 )
PRINT 'Leap Year - 366 days'
else
PRINT 'Not a leap year - 365.25 days'
Respuesta Responder a este mensaje
#4 ulises
10/01/2005 - 19:17 | Informe spam
Podrías usar algo como :

declare @fecha datetime
set @fecha = '19630925'
select ( case
when month(GETDATE()) > month(@fecha) then
datediff(year,@fecha,GETDATE())
when month(GETDATE()) = month(@fecha) then
( case
when day(GETDATE()) >= day(@fecha) then
datediff(year,@fecha,GETDATE())
else datediff(year,@fecha,GETDATE()) - 1
end )
when month(GETDATE()) < month(@fecha) then
datediff(year,@fecha,GETDATE()) - 1
end ) as edad

Saludos,
Ulises

lo que pasa es, digamos que su fecha de nacimiento es


11/10/1982, al aplicar
datediff el resultado es 23, cuando aun tiene 22 aà±os,


nose si habra alguna
manera de obtener la edad verdadera.

"Josep Solà " wrote:

Prueba con la función




Datediff(year,FechaNacimiento,GetDate())
Té darà la diferencia de aà±os. Puedes modificar el




primer parà metro a "day"
y luego ajustar el cà¡lculo a tus necesidades

"anonimo" escribió




en el mensaje
news:
> Una ayudita, si tengo un campo donde almaceno la fecha




de nacimiento de un
> usuario, en conjunto con la funcion getdate o con otra




funcion hay la
> posibilidad de saber la edad de los usuarios, gracias.
>
> (teniendo en cuenta que sacar la diferencia de aà±os




no es la mejor manera)





.

Respuesta Responder a este mensaje
#5 anonimo
10/01/2005 - 19:29 | Informe spam
Gracias..!!!

"Isaías" wrote:

Si no mal recuerdo, este codigo tiene derechos reservados
de Javier Loria, si no, mil disculpas para el autor:

DECLARE @birthday datetime, @d datetime
SELECT @birthday = '04/07/1960', @d = getdate()
SELECT datediff(yy, @birthday, @d) -
(case WHEN (datepart(m, @birthday) > datepart(m,
@d)) OR
(datepart(m, @birthday) = datepart
(m, @d) AND
datepart(d, @birthday) >
datepart(d, @d))
THEN 1
ELSE 0
end) AS Age1
SELECT year ( dateadd( dd, datediff ( dd , @birthday ,
@d ) ,
'1900-01-01 00:00' ) ) - 1900
IF ( year ( @d ) % 400 = 0 ) Or
( year( @d ) % 4 = 0 AND year ( @d ) % 100 <> 0 )
PRINT 'Leap Year - 366 days'
else
PRINT 'Not a leap year - 365.25 days'

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida