SQL Server - diferencia de tiempos

 
Vista:

diferencia de tiempos

Publicado por Hector Morales (1 intervención) el 18/11/2008 16:53:53
Saludos,

tengo el problema de sacar la diferencia de tiempo entre dos fechas.

He encontrado las funciones DATEDIFF y Convert pero no me funcionas porque solo me dan en meses, dias, horas o minutos, pero el formato que necesito es HH:MM:ss horas minutos y segundos.

No se como hacerlo, gracias por su colaboracion.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de roger

RE:diferencia de tiempos

Publicado por roger (173 intervenciones) el 22/11/2008 03:55:01
podrias poner un ejemplo de la operacion que necesitas hacer, entre que fechas y como la deseas obtener????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:diferencia de tiempos

Publicado por Isaias (3308 intervenciones) el 22/11/2008 05:41:09
¿Como sacar la diferencia en DIAS, HORAS, MINUTOS Y SEGUNDOS?

select
sum(datediff(second, FechaAl, FechaOk)) / (24 * 60 * 60) as dias,
(sum(datediff(second, FechaAl, FechaOk)) % (24 * 60 * 60)) / (3600) as horas,
((sum(datediff(second, FechaAl, FechaOk)) % (24 * 60 * 60)) % (3600)) /
(60) as minutos,
((sum(datediff(second, FechaAl, FechaOk)) % (24 * 60 * 60)) % (3600)) %
(60) as segundos
from
(
select
cast(cFechaAl as datetime) as FechaAl,
isnull(cast(cFechaOk as datetime), dateadd(second, (FAxDia * 24 * 60 *
60) + datediff(second, convert(varchar(10), getdate(), 126),
convert(varchar(10), getdate(), 126) + 'T' + FAxHora), cast(cFechaAl as
datetime))) as FechaOk
from
v1 -- AQUI PON EL NOMBRE DE LA VISTA
) as t
go

Ejemplo:

use northwind
go

create table t1 (
cFechaAl varchar(25),
cFechaOk varchar(25),
FAxDia int,
FAxHora varchar(8)
)
go

insert into t1 values('2006-05-26 13:30:08', '2006-05-26 13:45:03', 0, '00:14:55')
insert into t1 values('2006-05-26 13:31:42', '2006-05-29 10:57:08', 2, '21:25:26')
insert into t1 values('2006-05-26 13:31:59', NULL, 10, '21:02:57')
go

select
sum(datediff(second, FechaAl, FechaOk)) / (24 * 60 * 60) as dias,
(sum(datediff(second, FechaAl, FechaOk)) % (24 * 60 * 60)) / (3600) as horas,
((sum(datediff(second, FechaAl, FechaOk)) % (24 * 60 * 60)) % (3600)) /
(60) as minutos,
((sum(datediff(second, FechaAl, FechaOk)) % (24 * 60 * 60)) % (3600)) %
(60) as segundos
from
(
select
cast(cFechaAl as datetime) as FechaAl,
isnull(cast(cFechaOk as datetime), dateadd(second, (FAxDia * 24 * 60 *
60) + datediff(second, convert(varchar(10), getdate(), 126),
convert(varchar(10), getdate(), 126) + 'T' + FAxHora), cast(cFechaAl as
datetime))) as FechaOk
from
t1
) as t
go

drop table t1
go
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar