Encontrar diferencia de horas entre dos fechas.

Un usuario Pregunto ✅

jwieczerzak

Estoy usando lo siguiente para crear una columna, pero la salida parece ser incorrecta (se muestran todos los ceros). Cualquier ayuda sería apreciada…

Duration3 = DATEDIFF (‘prod agenttak'[TaskStartTime].[Date], ‘prod agenttask'[TaskEndTime].[Date], MINUTO)

También he probado …

Duration3 = DATEDIFF (‘prod agenttak'[TaskStartTime], ‘prod agenttask'[TaskEndTime], MINUTO)

pero obtengo lo siguiente.

En la función DATEDIFF, la fecha de inicio no puede ser mayor que la fecha de finalización

Baskar

En respuesta a jwieczerzak

Hola amigo ,

¿Probaste este?

Duración3 = if (Isblank (‘prod agenttask'[TaskStartTime]) = verdadero () || Isblank (‘prod agenttask'[TaskEndTime]) = verdadero ||

‘prod agenttak'[TaskStartTime] > ‘prod agenttask'[TaskEndTime],

Blanco(),

DATEDIFF (‘prod agenttask'[TaskStartTime], ‘prod agenttask'[TaskEndTime], MINUTO)

)

Estoy seguro de que te ayudará.

Nota :

Marque el tipo de datos de la columna de ambas fechas.

Si no resuelve su problema, comparta sus datos, lo ayudaré uuuuuu

En respuesta a jwieczerzak

@jwieczerzak

Ésta es la limitación de la función DATEDIFF () en DAX. Se devuelve un error si start_date es mayor que end_date. Para obtener más detalles, consulte: Función DATEDIFF (DAX). Entonces, en su escenario, debe aplicar la condición (como la declaración IF) para hacer que la fecha de finalización sea mayor que la fecha de inicio.

Saludos,

jwieczerzak

Si. Resulta que hay fechas de finalización que preceden a las fechas de inicio. Pero, ¿por qué Power BI falla en eso? ¿No lo haría si solo produjera un número negativo?

En respuesta a jwieczerzak

@jwieczerzak

Ésta es la limitación de la función DATEDIFF () en DAX. Se devuelve un error si start_date es mayor que end_date. Para obtener más detalles, consulte: Función DATEDIFF (DAX). Entonces, en su escenario, debe aplicar la condición (como la declaración IF) para hacer que la fecha de finalización sea mayor que la fecha de inicio.

Saludos,

Baskar

En respuesta a jwieczerzak

Hola amigo ,

¿Probaste este?

Duración3 = if (Isblank (‘prod agenttask'[TaskStartTime]) = verdadero () || Isblank (‘prod agenttask'[TaskEndTime]) = verdadero ||

‘prod agenttak'[TaskStartTime] > ‘prod agenttask'[TaskEndTime],

Blanco(),

DATEDIFF (‘prod agenttask'[TaskStartTime], ‘prod agenttask'[TaskEndTime], MINUTO)

)

Estoy seguro de que te ayudará.

Nota :

Marque el tipo de datos de la columna de ambas fechas.

Si no resuelve su problema, comparta sus datos, lo ayudaré uuuuuu

imy

En respuesta a Baskar

Hola Baskar,

Estaba viendo su solución y me gustaría usarla para mi visualización, pero devuelve solo 00:00.

Quiero agregar una nueva columna en mi conjunto de datos que muestra las horas que tomó resolver un ticket desde el principio (Fecha) hasta el final (Actualizado). Los tipos de fecha de ambas columnas son Fecha / Hora, también la nueva columna. No hay nulos ni espacios en blanco y ninguna fecha en las columnas Actualizadas es menor que la columna Fecha. ¿Qué estoy haciendo mal?

prueba = if (Isblank (WHD_Tickets[Date]) = verdadero () || Isblank (WHD_Tickets[Updated]) = verdadero ||

WHD_Tickets[Date] > WHD_Tickets[Updated],

Blanco(),

DATEDIFF (WHD_Tickets[Date], WHD_Tickets[Updated], HORA )

)

Baskar

En respuesta a imy

Si es posible, comparta algunos datos de muestra, lo veré @imy

parry2k

En respuesta a jwieczerzak

desafortunadamente, no devuelve un número negativo si la fecha de finalización es anterior a la fecha de inicio, pero puede agregar el inicio de sesión en su condición if

si fecha de finalización

Esto le dará un número negativo cuando la fecha de finalización sea anterior a la fecha de inicio y, de lo contrario, obtendrá un número positivo. Espero que sea de ayuda.

Baskar

Frio ,

El problema es la primera parte de la fecha. La tarifa debe ser menor que la próxima fecha.

Mi suposición es que su problema es que tiene algún valor nulo o algo donde la fecha de inicio es mayor que la fecha de finalización.

Duración3 = if (Isblank (‘prod agenttask'[TaskStartTime]) = verdadero () || Isblank (‘prod agenttask'[TaskEndTime]) = verdadero ||

‘prod agenttak'[TaskStartTime] > ‘prod agenttask'[TaskEndTime],

Blanco(),

DATEDIFF (‘prod agenttask'[TaskStartTime], ‘prod agenttask'[TaskEndTime], MINUTO)

)

Prueba este, te ayudará a pensar que sí,

Si no, avísame entonces te ayudaré seguro 🙂

Frio

jwieczerzak

En respuesta a Baskar

Gracias por la ayuda. Había nulos, así que los eliminé. Sin embargo, no pude ejecutar su consulta porque recibí un error acerca de que varias declaraciones en blanco no eran válidas. Como novato en Power BI, estoy luchando con las rarezas en la sintaxis …

tringuyenminh92

Hola @jwieczerzak,

Verifique sus datos nuevamente para asegurarse de que no haya una fecha de inicio posterior a la fecha de finalización. y ¿podría intentar agregar una parte de tiempo a su columna de fecha ?, hay filas con las mismas fechas que podrían ser el problema. Si aún no funciona, comparta sus datos de muestra para que pueda continuar con el análisis.

Deja un comentario

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