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

Reply via email to