Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Salida de conversión incorrecta de DATEDIFF

La calucación DATEDIFF está emitiendo valores incorrectos como se puede ver en la captura de pantalla a continuación. ¿Hay alguna razón específica por la que alguien lo sepa, o hay un método más preciso para obtener el recuento de días entre la Fecha A y la Fecha B?

sffc_0-1642624374275.png

2 ACCEPTED SOLUTIONS

Solo tengo resultados de trabajo también.

Consulte PBIX actualizado adjunto. Página 2.

El primer lugar donde estaría buscando son los tipos de datos para las fechas y ver si hay algún problema de conversión / problemas de configuración regional, pero dudo que eso explique diferencias tan significativas.

View solution in original post

Agregar columna personalizada:

= Duration.Days([DecommissionDate]-[DateFirstUse]))
A Power BI no le gustan las columnas de fecha calculadas con un origen de datos SQL. Al agregar una columna personalizada en Power Query, se obtienen cálculos correctos para todos los valores.

View solution in original post

17 REPLIES 17
Syndicate_Admin
Administrator
Administrator

DateDiff debería funcionar bien.

Necesito más detalles.

¿Es eso una medida o una columna calculada?

¿Puede incluir algunos datos reales? (no es una captura de pantalla)

Una captura de pantalla de su modelo de datos también puede ayudar.

Esto está en una columna calculada. No veo una manera de usar columnas en las medidas, así que he estado usando columnas calculadas:

timeInService = DATEDIFF(Equipo[DateFirstUse], Equipo[Fecha de desmantelamiento], DÍA)
Sigo recibiendo un error HTML al publicar la respuesta al intentar pegar la tabla en la respuesta, y no veo una opción para importar o adjuntar nada necesariamente. ¿Cuál es la mejor manera de proporcionar los datos de muestra en este formulario?

Mis disculpas, pero no puedo compartir una captura de pantalla de la modelo.

La función DATEDIF() de Excel calcula los valores correctamente, por lo que parece ser un problema específico de Power BI por algún motivo. En Power BI, algunos de los valores están correctamente cubiertos, pero la mayoría de ellos son incorrectos.

Solo debería poder copiar y pegar desde Excel.

Alternativamente, comparte en google drive o similar.

Esto fue copiado / pegado de excel ...

FechaIniciar FechaFin
18/05/2019 4/12/2011
2/09/2011 1/07/2019
11/10/2010 11/08/2013
28/09/2010 20/01/2017
4/09/2011 19/09/2018
17/07/2013 7/12/2009
7/08/2013 10/02/2017
5/06/2014 14/03/2010
15/02/2019 10/08/2021
21/05/2013 4/06/2010
5/07/2019 20/01/2012
17/12/2013 17/07/2021
15/11/2012 14/05/2018
16/02/2017 3/01/2014

Sí, solo recibo este error al intentar publicar una respuesta con la tabla pegada:

"Tu publicación se ha cambiado porque se encontró HTML no válido en el cuerpo del mensaje. Se ha eliminado el CÓDIGO HTML no válido. Por favor, revise el mensaje y envíelo cuando esté satisfecho."

Aquí hay un enlace de Google Drive al que he subido una muestra:

https://drive.google.com/file/d/1t7jBXYHQ367BWpeuj-x9Y0KPmlsQrpMX/view?usp=sharing

Mientras miro sus datos de muestra, se adjunta un ejemplo básico de PBIX donde datediff parece estar funcionando como se esperaba. Por si acaso eso te ayuda a identificar el problema.

Sí, no puedo replicar el problema cuando uso una hoja de cálculo como fuente de datos. Todos los valores cuando Excel es la fuente de datos salen para convertirse correctamente. Cuando se usan valores con Base de datos SQL de Azure como origen de datos, se trata de una combinación de valores correctos e incorrectos. Asumiría que el resultado debería ser el mismo, por lo que no estoy seguro de por qué el uso de la tabla de base de datos produciría resultados diferentes. ¿Algún pensamiento?

Solo tengo resultados de trabajo también.

Consulte PBIX actualizado adjunto. Página 2.

El primer lugar donde estaría buscando son los tipos de datos para las fechas y ver si hay algún problema de conversión / problemas de configuración regional, pero dudo que eso explique diferencias tan significativas.

En ella, @KNP

Parece que los valores incorrectos se multiplican por 2,3,4 tal vez otros, no los verificó todos, pero algo lo está repitiendo. Gracias por la solución.

Probé usando una medida, basada en su archivo y también está funcionando.

DateDiff_Measure = SUMX('Equipment', DATEDIFF('Equipment'[DateFirstUse], 'Equipment'[DecommissionDate], DAY))

Ya he jugado con los tipos de datos y el formato, pero aún sin éxito. Son verdaderos tipos de datos DATE. Marcaré su respuesta como la solución y trataré de encontrar una solución. Gracias a todos por tratar de ayudar.

La otra cosa a verificar, si alguna agrupación / agregación que ocurre en la visualización está causando resultados engañosos. Si ya está volcado en una tabla sin que ocurra la agregación, entonces no tengo ideas por ahora.

Mucha suerte.

Agregar columna personalizada:

= Duration.Days([DecommissionDate]-[DateFirstUse]))
A Power BI no le gustan las columnas de fecha calculadas con un origen de datos SQL. Al agregar una columna personalizada en Power Query, se obtienen cálculos correctos para todos los valores.

Syndicate_Admin
Administrator
Administrator

Los resultados para la función anterior se pueden ver en la captura de pantalla a continuación que son subtsantialmente más altos:


sffc_0-1642627270212.png

No estoy seguro de que eso ayude, pero el último. [Fecha] debe ser . [Día]. Será bueno si proporciona algún archivo si no contiene información confidencial

Debo haber cambiado eso al tener que volver a escribir algunos de los nombres de las tablas, pero lo cambié a . [Día] y aún así obtener resultados incorrectos.

Syndicate_Admin
Administrator
Administrator

Hi, @sffc

Intente crear una tabla de calendario con fechas completas, luego conéctela a la tabla de hechos (Equipo) y use la función.

Hola - gracias por la respuesta y la idea. Puedo intentarlo, pero ¿puede confirmar lo que quiere decir con "fechas completas"? Lo he intentado con fechas cortas y largas que están completas, pero obtengo los mismos resultados, es decir, miércoles 15 de diciembre de 2015 -> 15/12/2015, etc.

¿Puedes probar esto?

TimeInService = SUMX('Equipment', DATEDIFF('Equipment'[DateFirstUse].[ Día], 'Equipo'[DecommisionDate]. [Día], DÍA))

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Fabric Monthly Update - May 2024

Check out the May 2024 Fabric update to learn about new features.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

Top Solution Authors