Buen día.
Tengo los siguientes datos de ejemplo
Create table tiempos (inicial timestamp, final timestamp);
Insert Into tiempos
Values
('2018-03-15 07:39:57', '2018-03-15 21:06:44'),
('2018-03-15 21:06:44', '2018-03-16 07:55:20'),
('2018-03-16 07:55:20', '2018-03-16 15:38:58'),
('2018-03-16 15:38:58', '2018-03-16 19:59:34'),
('2018-03-16 19:59:34', '2018-03-18 07:58:49'),
('2018-03-18 07:58:49', '2018-03-18 14:34:34');
Select inicial, final, final - inicial As diferencia
from tiempos;
Inicial Final
Diferencia
2018-03-15 07:39:57 2018-03-15 21:06:44 13:26:47
2018-03-15 21:06:44 2018-03-16 07:55:20 10:48:36
2018-03-16 07:55:20 2018-03-16 15:38:58 07:43:38
2018-03-16 15:38:58 2018-03-16 19:59:34 04:20:36
2018-03-16 19:59:34 2018-03-18 07:58:49 1 day 11:59:15
2018-03-18 07:58:49 2018-03-18 14:34:34 06:35:45
Cuando la diferencia es mayor a un día me muestra 1 day 11:59:15, necesito que
me muestre en formato de horas, es decir 35:59:15, así cuando haga un balance
de la columna diferencia mantenga el formato de horas.
With t
AS
(
Select inicial, final, final - inicial As diferencia
from tiempos
)
Select *
, sum(diferencia)
OVER(ORDER BY inicial
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS balance
From t;
Inicial Final
Diferencia balance
2018-03-15 07:39:57 2018-03-15 21:06:44 13:26:47
13:26:47
2018-03-15 21:06:44 2018-03-16 07:55:20 10:48:36
24:15:23
2018-03-16 07:55:20 2018-03-16 15:38:58 07:43:38
31:59:01
2018-03-16 15:38:58 2018-03-16 19:59:34 04:20:36
36:19:37
2018-03-16 19:59:34 2018-03-18 07:58:49 1 day 11:59:15 1
day 48:18:52
2018-03-18 07:58:49 2018-03-18 14:34:34 06:35:45
1 day 54:54:37
Aquí se me muestra como lo necesito incluso cuando el tiempo es mayor a 24:00
h, pero se encuentra con un valor 1 day el formato es otro, como puedo hacer
para que todos los cálculos se muestren en formato hora?
Saludos
Mauricio