Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: SQL Server Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
En este artículo se describen los tipos de datos que se pueden usar en modelos tabulares y se describe la conversión implícita de tipos de datos cuando los datos se calculan o se usan en una fórmula de expresiones de análisis de datos (DAX).
Tipos de datos usados en modelos tabulares
Al importar datos o usar un valor en una fórmula, incluso si el origen de datos original contiene un tipo de datos diferente, los datos se convierten en uno de los siguientes tipos de datos. Los valores resultantes de las fórmulas también usan estos tipos de datos.
En general, estos tipos de datos se implementan para habilitar cálculos precisos en columnas calculadas y para la coherencia se aplican las mismas restricciones al resto de los datos de los modelos.
Los formatos usados para números, monedas, fechas y horas deben seguir el formato de la configuración regional que se especifica en el cliente que se usa para trabajar con los datos del modelo. Puede usar las opciones de formato del modelo para controlar la forma en que se muestra el valor.
Tipo de datos en el modelo | Tipo de datos en DAX | Descripción |
---|---|---|
Número entero | Valor entero de 64 bits (ocho bytes) * Nota: Las fórmulas DAX no admiten tipos de datos demasiado pequeños para contener el valor mínimo enumerado en la descripción. |
Números que no tienen posiciones decimales. Los enteros pueden ser números positivos o negativos, pero deben ser números enteros entre -9.223.372.036.854.775.807 (-2^63+1) y 9.223.372.036.854.775.806 (2^63-2). |
Número decimal | Número real de 64 bits (ocho bytes) * Nota: Las fórmulas DAX no admiten tipos de datos demasiado pequeños para contener el valor mínimo enumerado en la descripción. |
Los números reales son números que pueden tener posiciones decimales. Los números reales cubren una amplia gama de valores: Valores negativos de -1,79E +308 a -2.23E -308 Cero Valores positivos de 2,23E -308 a 1,79E + 308 Sin embargo, el número de dígitos significativos se limita a 15 dígitos decimales. |
Booleano | Booleano | Un valor Verdadero o Falso. |
Mensaje de texto | Cuerda | Cadena de datos de caracteres Unicode. Puede ser cadenas, números o fechas representadas en un formato de texto. El tamaño máximo efectivo de una cadena está sujeto a un límite de bytes de 32767. |
Binario | Cuerda | Datos binarios no estructurados, por ejemplo, imágenes. Las columnas con este tipo de datos tienen una funcionalidad limitada en DAX. El tamaño máximo efectivo de un valor de datos binarios está sujeto a un límite de bytes de 67108864. |
Fecha | Fecha y hora | Fechas y horas en una representación de fecha y hora aceptada. Las fechas válidas son todas las fechas posteriores al 1 de marzo de 1900. |
Divisa | Divisa | El tipo de datos currency permite valores de -922.337.203.685.477,5807 a 922.337.203.685.477,5806 con cuatro dígitos decimales de precisión fija. |
Variante | Variante | Se usa para expresiones, como medidas DAX, que pueden devolver tipos de datos diferentes. Por ejemplo, una medida DAX que devuelve un número entero o una cadena de texto será del tipo variante. |
No disponible | En blanco | Un valor en blanco es un tipo de datos en DAX que representa y reemplaza los valores NULL de SQL. Puede crear un espacio en blanco mediante la función BLANK y probar los espacios en blanco mediante la función lógica ISBLANK. |
* Si intenta importar datos con valores numéricos grandes, puede producirse un error en la importación con el siguiente error:
Error de base de datos en memoria: la columna "<nombre> de columna" de la tabla "<nombre> de tabla" contiene un valor, "1.7976931348623157e+308", que no se admite. Se ha cancelado la operación.
Este error se produce porque el diseñador de modelos usa ese valor para representar valores NULL. Los valores de la lista siguiente son sinónimos del valor NULL mencionado anteriormente:
Valor |
---|
9223372036854775807 |
-9223372036854775808 |
1.7976931348623158e+308 |
-1.7976931348623158e+308 |
Quite el valor de sus datos e intente importarlo de nuevo.
Nota:
No se puede importar desde una columna varchar(max) que contenga una longitud de cadena de más de 131 072 caracteres.
Tipo de datos de tabla
Además, DAX usa un tipo de datos de tabla . DAX usa este tipo de datos en muchas funciones, como agregaciones y cálculos de inteligencia de tiempo. Algunas funciones requieren una referencia a una tabla; otras funciones devuelven una tabla que se puede usar como entrada para otras funciones. En algunas funciones que requieren una tabla como entrada, puede especificar una expresión que se evalúe como una tabla; para algunas funciones, se requiere una referencia a una tabla base. Para obtener información sobre los requisitos de funciones específicas, vea Referencia de funciones DAX.
Conversión implícita y explícita de tipos de datos en fórmulas DAX
Cada función DAX tiene requisitos específicos sobre los tipos de datos que se usan como entradas y salidas. Por ejemplo, algunas funciones requieren enteros para algunos argumentos y fechas para otros; otras funciones requieren texto o tablas.
Si los datos de la columna que especifique como argumento no son compatibles con el tipo de datos requerido por la función, DAX en muchos casos devuelve un error. Sin embargo, siempre que sea posible, DAX intenta convertir implícitamente los datos en el tipo de datos necesario. Por ejemplo:
Puede escribir un número, por ejemplo "123", como una cadena. DAX analiza la cadena e intenta especificarla como un tipo de datos numérico.
Puede agregar TRUE + 1 y obtener el resultado 2, ya que TRUE se convierte implícitamente en el número 1 y se realiza la operación 1+1.
Si agrega valores en dos columnas y un valor se representa como texto ("12") y el otro como un número (12), DAX convierte implícitamente la cadena en un número y, a continuación, realiza la adición de un resultado numérico. La expresión siguiente devuelve 44: = "22" + 22
Si intenta concatenar dos números, se presentan como cadenas y, a continuación, se concatenan. La expresión siguiente devuelve "1234": = 12 & 34
En la tabla siguiente se resumen las conversiones implícitas de tipos de datos que se realizan en fórmulas. En general, el diseñador de modelos semánticos se comporta como Microsoft Excel y realiza conversiones implícitas siempre que sea posible cuando sea necesario en la operación especificada.
Tabla de conversiones de datos implícitas
El tipo de conversión que se realiza es determinado por el operador, que convierte los valores que requiere antes de realizar la operación solicitada. Estas tablas enumeran los operadores e indican la conversión que se realiza en cada tipo de datos de la columna cuando se empareja con el tipo de datos de la fila de intersección.
Nota:
Los tipos de datos de texto no se incluyen en estas tablas. Cuando un número se representa como en un formato de texto, en algunos casos, el diseñador de modelos intenta determinar el tipo de número y representarlo como un número.
Suma (+)
ENTERO | MONEDA | REAL | Fecha y hora | |
---|---|---|---|---|
INTEGER | ENTERO | MONEDA | REAL | Fecha y hora |
DIVISA | MONEDA | MONEDA | REAL | Fecha y hora |
REAL | REAL | REAL | REAL | Fecha y hora |
Fecha y hora | Fecha y hora | Fecha y hora | Fecha y hora | Fecha y hora |
Por ejemplo, si se usa un número real en una operación de suma en combinación con datos de moneda, ambos valores se convierten en REAL y el resultado se devuelve como REAL.
Resta (-)
En la tabla siguiente, el encabezado de fila es el minuend (lado izquierdo) y el encabezado de columna es el subtrahend (lado derecho):
ENTERO | MONEDA | REAL | Fecha y hora | |
---|---|---|---|---|
INTEGER | ENTERO | MONEDA | REAL | REAL |
DIVISA | MONEDA | MONEDA | REAL | REAL |
REAL | REAL | REAL | REAL | REAL |
Fecha y hora | Fecha y hora | Fecha y hora | Fecha y hora | Fecha y hora |
Por ejemplo, si se usa una fecha en una operación de resta con cualquier otro tipo de datos, ambos valores se convierten en fechas y el valor devuelto también es una fecha.
Nota:
Los modelos tabulares también admiten el operador unario : (negativo), pero este operador no cambia el tipo de datos del operando.
Multiplicación (*)
ENTERO | MONEDA | REAL | Fecha y hora | |
---|---|---|---|---|
INTEGER | ENTERO | MONEDA | REAL | ENTERO |
DIVISA | MONEDA | REAL | MONEDA | MONEDA |
REAL | REAL | MONEDA | REAL | REAL |
Por ejemplo, si un entero se combina con un número real en una operación de multiplicación, ambos números se convierten en números reales y el valor devuelto también es REAL.
División (/)
En la tabla siguiente, el encabezado de fila es el numerador y el encabezado de columna es el denominador: (Fila/Columna)
ENTERO | MONEDA | REAL | Fecha y hora | |
---|---|---|---|---|
INTEGER | REAL | MONEDA | REAL | REAL |
DIVISA | MONEDA | REAL | MONEDA | REAL |
REAL | REAL | REAL | REAL | REAL |
Fecha y hora | REAL | REAL | REAL | REAL |
Por ejemplo, si un entero se combina con un valor de moneda en una operación de división, ambos valores se convierten en números reales y el resultado también es un número real.
Operadores de comparación
Solo se admite un conjunto limitado de combinaciones de tipos de datos mixtos para las operaciones de comparación. Para más información, consulte Referencia del operador DAX.
Control de espacios en blanco, cadenas vacías y cero valores
En la tabla siguiente se resumen las diferencias entre DAX y Microsoft Excel, en cómo se controlan los espacios en blanco.
Expresión | DAX | Excel |
---|---|---|
BLANK + BLANK | EN BLANCO | 0 (cero) |
BLANK +5 | 5 | 5 |
BLANK * 5 | EN BLANCO | 0 (cero) |
5/EN_BLANCO | Infinidad | Error |
0/VACÍO | NaN | Error |
BLANK/BLANK | EN BLANCO | Error |
FALSO O VACÍO | FALSO | FALSO |
FALSO Y VACÍO | FALSO | FALSO |
TRUE O BLANK | VERDADERO | VERDADERO |
TRUE Y BLANK | FALSO | VERDADERO |
EN BLANCO O EN BLANCO | EN BLANCO | Error |
EN BLANCO Y EN BLANCO | EN BLANCO | Error |
Para obtener más información sobre cómo una función o un operador concreto controla los espacios en blanco, consulte los temas individuales de cada función DAX, en la sección Referencia de la función DAX.