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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Las columnas de tipo de duración no se reconocen desde una conexión ODBC

Hola

Estaba usando Power BI Desktop con una conexión local de PostgreSQL. Tenía una tabla con algunas columnas de intervalo (en SQL: "AGE(x_2, x_1) AS interval_column"). Power BI reconoció automáticamente esas columnas como "duración" sin agregar ningún paso en Power Query.

Ahora estoy cambiando de una conexión local a una conexión ODBC, y esas columnas ya no se reconocen como 'duración', sino como 'texto'. Cambiar el tipo de 'texto' a 'duración' agregando un paso en Power Query conduce a un error:

(Literal para la duración no se pudo analizar).

2021-10-21 15_16_12-KPI-Report - Power Query-Editor.png

Ambas tablas son exactamente iguales,además de las diferentes conexiones.

Incluso intenté cambiar las instrucciones SQL de:

EDAD(x_2, x_1) AS interval_column

Para

(x_2 - x_1) AS interval_column

pero no funcionó tan bien.

¡Espero que puedas ayudarme! ¡Muchas gracias de antemano!

Sinceramente

Omar

Fragmento de ejemplo de la tabla:

2021-10-26 17_52_45-KPI-Report - Power Query-Editor.png

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Hay @oemer_erguen,

¿Podemos considerar la importación de las columnas de fecha x_1 y x_2 en Power BI y, a continuación, hacer referencia a la solución en los siguientes subprocesos para obtener la duración?

1. Agregar una columna personalizada en el Editor de Power Query

Duración entre fecha y hora

2. Uso de DAX

Calcular la duración en días, horas, minutos y segundos de forma dinámica en Power BI mediante DAX

Saludos

Hola @yingyinr y @lbendlin ,

Sé cómo resolver el problema de manera diferente y actualmente estoy usando la "opción 3" en la que guardo los segundos entre x_1 y x_2 y lo divido por 86400 (Un día tiene 86400 segundos) por lo que obtengo un número de décima, que es reconocido por Power BI como decimal.

Pero el problema real sigue siendo el mismo: una conexión de consulta directa a un SQL conduce a una tabla de resultados diferente que una conexión a través de ODBC. Espacialmente los campos de intervalo de la tabla sql no se reconocen igual en Power BI (uno se reconoce como duración, el otro como texto).

Para mí se parece más a un error o las consultas difieren entre sí.

Y consejo para usted @yingyinr,nunca use DAX si pudiera manejar lo mismo en SQL. Dax es una forma de ralentizar ...

Syndicate_Admin
Administrator
Administrator

Hola @lbendlin,
hay 3 formas de guardar intervalos (duración) en PostgreSQL. Ya sea como "año mes días horas:minutos:segundos:milisegundos", "días horas:minutos:segundos:milisegundos" o simplemente en "segundos". Las primeras 2 opciones se muestran como "duración" en Power BI desde nuestra base de datos local, pero como un "texto" desde nuestra conexión ODBC.

Creo que deberías ir con la tercera opción. Puede traducirse directamente en la construcción Power Query #duration (0,0,0, segundos).

Syndicate_Admin
Administrator
Administrator

solo para aclarar: ¿así es como obtiene los datos de la conexión ODBC? ¿Qué significa "1 mon?!?! ¿Cuántos días hay en ese mes?

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.

Top Kudoed Authors