Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

datediff! un problemon

Estas en el tema de datediff! un problemon en el foro de SQL Server en Foros del Web. Hola he usado esta formula para calcular una edad o los años entre una fecha y la fecha actual! SELECT datediff(yy,FechadeInicio,GETDATE()) as ed From dbo.MiTabla ...
  #1 (permalink)  
Antiguo 29/07/2008, 20:29
 
Fecha de Ingreso: mayo-2007
Mensajes: 38
Antigüedad: 17 años
Puntos: 0
datediff! un problemon

Hola he usado esta formula para calcular una edad o los años entre una fecha y la fecha actual!

SELECT datediff(yy,FechadeInicio,GETDATE()) as ed From dbo.MiTabla

ahora bien quiera saber como sacar realmente los años, meses, dias, horas y minutos por separado y luego todo el contenido en un solo campo!?

la fecha de incio por ejemplo seria : 2000/05/25 10:28
anios meses dias horas minutos total
8 2 nose! nose! nose! 8 anios 2 meses xx dias xx horas xx min

alguien me puede dar una ayuda ?
  #2 (permalink)  
Antiguo 30/07/2008, 06:29
 
Fecha de Ingreso: julio-2008
Mensajes: 5
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: datediff! un problemon

oye yo use alguna ves este

Edad = datediff(mm,pac.PAC_PAC_FechaNacim,getdate())/12, y me entrega los años
justitos, por los dias años meses la verdad no tengo como probar si me los entrega de alguna manera

Última edición por seth1; 30/07/2008 a las 06:31 Razón: modificar respuesta
  #3 (permalink)  
Antiguo 30/07/2008, 08:40
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 9 meses
Puntos: 39
Respuesta: datediff! un problemon

Código:
SELECT datediff(yy,FechadeInicio,GETDATE()) yy,
datediff(mm,FechadeInicio,GETDATE()) mm,
datediff(dd,FechadeInicio,GETDATE()) dd,
datediff(mi,FechadeInicio,GETDATE()) mi
From dbo.MiTabla
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #4 (permalink)  
Antiguo 30/07/2008, 08:47
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 6 meses
Puntos: 8
Respuesta: datediff! un problemon

Que tal Kaiser.

Haber que te parece este truco.
Código:

DECLARE @fecha datetime 
SET @fecha = '20000525 10:28'
Select getdate() as Hoy, getdate()  - @fecha as Diferencia , Year(getdate()  - @fecha) - 1900 as AniosDiff, Month(getdate()  - @fecha) As MesesDiff

Hoy                                                    Diferencia                                             AniosDiff   MesesDiff   
------------------------------------------------------ ------------------------------------------------------ ----------- ----------- 
2008-07-30 09:47:20.827                                1908-03-07 23:19:20.827                                8           3

(1 row(s) affected)
Si te fijas la columna Diferencia, tiene eso la diferencia, con excepción del año, que hay que restarle la cantidad de 1900, espero te sirva.

Sólo hay problemas con fechas anteriores a 17530101 o algo así.

Saludos!
  #5 (permalink)  
Antiguo 01/08/2008, 18:50
 
Fecha de Ingreso: mayo-2007
Mensajes: 38
Antigüedad: 17 años
Puntos: 0
Respuesta: datediff! un problemon

Perfecto master! era lo que estaba buscando, ahora bien una pregunta mas como puedo relacionar esto junto con un select o bien que tome el valor de la fecha desde un campo asi incluyo esto dentro de una formula !!! en si la idea es tomar la fecha de un campo y en otro campo guardar ese resultado.... se entiende ? desde ya muchisimas gracias master!
  #6 (permalink)  
Antiguo 23/10/2008, 09:03
 
Fecha de Ingreso: octubre-2008
Mensajes: 1
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: datediff! un problemon

No se si te he entendido bien, pero lo que quieres es leer de una tabla la feha de Inicio y en otro campo de la misma tabla insertar el resultado de la diferencia, es eso?... porque con la idea que te muestra flavovich creo que es buena para basarte aqui te pongo un ejmplo de lo que creo que es lo que necsitas...

Create Table MiTabla(
Id int IDENTITY(1,1),
Fecha DateTime Not Null,
Resultado VarChar(255) Null -- Si, Nulo
)
Insert Into MiTabla (Fecha) Values('2008-01-01')
Insert Into MiTabla (Fecha) Values('2007-05-05')

Create Table #tmp(
Id Int Not Null,
Fecha DateTime Not Null,
FechaSistema DateTime Not Null Default GetDate(),
Resultado VarChar(255),
Anios Int Not Null,
Meses Int Not Null,
Dias Int Not Null,
Minutos Int Not Null,
)

Insert Into #tmp (Id,Fecha,Resultado,Anios,Meses,Dias,Minutos)
Select
Id,Fecha,
cast(datediff(yy,Fecha,GETDATE()) as varchar(255))+
cast(datediff(mm,Fecha,GETDATE()) as varchar(255))+
cast(datediff(dd,Fecha,GETDATE()) as varchar(255))+
cast(datediff(mi,Fecha,GETDATE()) as varchar(255)),
datediff(yy,Fecha,GETDATE()),
datediff(mm,Fecha,GETDATE()),
datediff(dd,Fecha,GETDATE()),
datediff(mi,Fecha,GETDATE())

From
MiTabla

Update
M
Set
M.Resultado = t.Resultado
From
MiTabla M With(NoLock)
Inner Join #tmp t On M.Id = t.Id

Select * From MiTabla

Drop Table #tmp
Drop Table MiTabla

...espero sea de ayuda, hasta luego.
  #7 (permalink)  
Antiguo 23/10/2008, 17:03
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: datediff! un problemon

Perdon, pero si no mal recuerdo, el tema de CALCULO DE EDAD, ya esta tocado en este tema y ademas resuelto.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:58.