Convertir duración decimal en formato HH: MM: SS

Un usuario Pregunto ✅

Anónimo

¡Saludos, amigos de Power BI!

Tengo un pequeño problema y estoy pidiendo ayuda porque no pude encontrar una solución entre las publicaciones del foro.

Primero, tengo esta tabla con algunas fechas, horas, minutos y segundos (solo para recordar, el formato aquí es DD / MM / AAAA HH: MM: SS):

FECHA DE CREACIÓN FECHA DE RESOLUCIÓN
01/01/2020 00:07:22 01/06/2020 22:13:27
01/07/2020 12:14:27 01/09/2020 02:58:18
13/01/2020 12:09:49 14/01/2020 22:33:00
14/01/2020 11:46:11 14/01/2020 23:21:21
15/01/2020 11:55:45 22/01/2020 00:34:05
16/01/2020 03:29:32 22/01/2020 00:54:32
16/01/2020 03:31:42 22/01/2020 02:05:22
16/01/2020 08:17:36 22/01/2020 05:14:05
17/01/2020 03:40:10 22/01/2020 22:10:54
17/01/2020 04:19:22 22/01/2020 22:14:32

Con eso, necesitaba extraer la cantidad de horas que dedico, comenzando desde la hora CREATION_DATE hasta la hora RESOLUTION_DATE.

Y lo logro usando la función «Resta de tiempo», que me dio:

FECHA DE CREACIÓN FECHA DE RESOLUCIÓN SUSTRACCIÓN
01/01/2020 00:07:22 01/06/2020 22:13:27 5.22: 06: 05
01/07/2020 12:14:27 01/09/2020 02:58:18 1.14: 43: 51
13/01/2020 12:09:49 14/01/2020 22:33:00 1.10: 23: 11
14/01/2020 11:46:11 14/01/2020 23:21:21 0.11: 35: 10
15/01/2020 11:55:45 22/01/2020 00:34:05 6.12: 38: 20
16/01/2020 03:29:32 22/01/2020 00:54:32 5.21: 25: 00
16/01/2020 03:31:42 22/01/2020 02:05:22 5.22: 33: 40
16/01/2020 08:17:36 22/01/2020 05:14:05 5.20: 56: 29
17/01/2020 03:40:10 22/01/2020 22:10:54 5.18: 30: 44
17/01/2020 04:19:22 22/01/2020 22:14:32 5.17: 55: 10

La columna RESTA es un tipo de datos de duración que me dio los días que pasé con las horas, minutos y segundos.

Ej .: 5 días, 22 horas, 6 minutos y 5 segundos.

Dado que Power BI no tiene el tipo de datos de duración en los paneles, cuando cierro la ventana de Power Query, el programa me da estos valores:

FECHA DE CREACIÓN FECHA DE RESOLUCIÓN SUSTRACCIÓN
01/01/2020 00:07:22 01/06/2020 22:13:27 5.9208912037037
01/07/2020 12:14:27 01/09/2020 02:58:18 1,61378472222222
13/01/2020 12:09:49 14/01/2020 22:33:00 1,4327662037037
14/01/2020 11:46:11 14/01/2020 23:21:21 0,48275462962963
15/01/2020 11:55:45 22/01/2020 00:34:05 6.52662037037037
16/01/2020 03:29:32 22/01/2020 00:54:32 5,89236111111111
16/01/2020 03:31:42 22/01/2020 02:05:22 5,9400462962963
16/01/2020 08:17:36 22/01/2020 05:14:05 5,87255787037037
17/01/2020 03:40:10 22/01/2020 22:10:54 5,77134259259259
17/01/2020 04:19:22 22/01/2020 22:14:32 5.74664351851852

Como puedo ver, estos son los números decimales convertidos del tipo de datos de duración, ok.

Encontré una fórmula que convierte estos números decimales a su tipo de datos de hora, pero aún en tipo decimal:

DECIMAL_RESPONSE_TIME = 24, * TBL_CREATION_RESOLUTION[SUBTRACTION]
FECHA DE CREACIÓN FECHA DE RESOLUCIÓN SUSTRACCIÓN
DECIMAL_RESPONSE_TIME
01/01/2020 00:07:22 01/06/2020 22:13:27 5.9208912037037 142,101388888889
01/07/2020 12:14:27 01/09/2020 02:58:18 1,61378472222222 38,7308333333333
13/01/2020 12:09:49 14/01/2020 22:33:00 1,4327662037037 34,3863888888889
14/01/2020 11:46:11 14/01/2020 23:21:21 0,48275462962963 11,5861111111111
15/01/2020 11:55:45 22/01/2020 00:34:05 6.52662037037037 156,638888888889
16/01/2020 03:29:32 22/01/2020 00:54:32 5,89236111111111 141,416666666667
16/01/2020 03:31:42 22/01/2020 02:05:22 5,9400462962963 142,561111111111
16/01/2020 08:17:36 22/01/2020 05:14:05 5,87255787037037 140,941388888889
17/01/2020 03:40:10 22/01/2020 22:10:54 5,77134259259259 138,512222222222
17/01/2020 04:19:22 22/01/2020 22:14:32 5.74664351851852 137,919444444444

Como puedo ver, este es el total de horas invertidas. Ej .: La primera línea con los 5 días, dio 142 horas …

Ahora, finalmente mi pregunta: «¿Cómo puedo convertir DECIMAL_RESPONSE_TIME al formato HH: MM: SS?«
¡Gracias!

Rickymazz

Podrías probar algo como esto:

Columna calculada:

Segundos = DATEDIFF (Fecha de creación, Fecha de resolución, SEGUNDO)

Columna calculada:

Your_Time =
SI([Seconds] <> EN BLANCO ();
Duración VAR = [Seconds]
VAR hh =
INT (Duración / 3600)
VAR Minutos =
INT (MOD (Duración – (hh * 3600); 3600) / 60)
Segundos VAR =
REDONDEAR (MOD (MOD (Duración – (hh * 3600); 3600); 60); 0) // Redondeamos aquí para obtener un número entero
VAR H =
SI (LEN (hh) = 1;
CONCATENAR («0»; hh);
CONCATENAR («»; hh)
)
VAR M =
SI (
LEN (minutos) = 1;
CONCATENAR («0»; Minutos);
CONCATENAR («»; Minutos)
)
VAR S =
SI (
LEN (segundos) = 1;
CONCATENAR («0»; Segundos);
CONCATENAR («»; Segundos)
)
REGRESO
CONCATENAR (
H;
CONCATENAR («:»; CONCATENAR (M; CONCATENAR («:»; S)))
); BLANCO())

Rickymazz

Podrías probar algo como esto:

Columna calculada:

Segundos = DATEDIFF (Fecha de creación, Fecha de resolución, SEGUNDO)

Columna calculada:

Your_Time =
SI([Seconds] <> EN BLANCO ();
Duración VAR = [Seconds]
VAR hh =
INT (Duración / 3600)
VAR Minutos =
INT (MOD (Duración – (hh * 3600); 3600) / 60)
Segundos VAR =
REDONDEAR (MOD (MOD (Duración – (hh * 3600); 3600); 60); 0) // Redondeamos aquí para obtener un número entero
VAR H =
SI (LEN (hh) = 1;
CONCATENAR («0»; hh);
CONCATENAR («»; hh)
)
VAR M =
SI (
LEN (minutos) = 1;
CONCATENAR («0»; Minutos);
CONCATENAR («»; Minutos)
)
VAR S =
SI (
LEN (segundos) = 1;
CONCATENAR («0»; Segundos);
CONCATENAR («»; Segundos)
)
REGRESO
CONCATENAR (
H;
CONCATENAR («:»; CONCATENAR (M; CONCATENAR («:»; S)))
); BLANCO())

Anónimo

En respuesta a Rickymazz

¡INCREÍBLE! ¡Muchos gracias!

Visualmente es genial, pero ¿algún consejo sobre cómo puedo realizar operaciones matemáticas con esta columna?

Rickymazz

En respuesta a Anónimo

Creo que podría ser mejor si realiza sus operaciones matemáticas en segundos. Después de eso, usará esta fórmula.

Si ayudó, marque mi respuesta anterior como ‘respuesta aceptada’, ¡gracias!

Anónimo

En respuesta a Rickymazz

Sí, creo que estará mejor, gracias por la ayuda.

Amitchandak

consulte: https: //community.powerbi.com/t5/Desktop/How-to-convert-seconds-to-hh-mm-ss/td-p/310219

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *