

# Tipos de datos en Amazon Athena
<a name="data-types"></a>

Cuando ejecute `CREATE TABLE`, deberá especificar los nombres de las columnas y el tipo de datos que puede contener cada columna. Las tablas que cree se almacenan en el AWS Glue Data Catalog. 

Para facilitar la interoperabilidad con otros motores de consultas, Athena usa nombres de tipos de datos de [Apache Hive](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types) para instrucciones DDL como `CREATE TABLE`. Para consultas de DML como `SELECT`, `CTAS` y `INSERT INTO`, Athena usa nombres de tipos de datos de [Trino](https://trino.io/docs/current/language/types.html). En la siguiente tabla, se muestran los tipos de datos admitidos en Athena. Cuando los tipos DDL y DML difieren en el nombre, la disponibilidad o la sintaxis, se muestran en columnas independientes.


****  

<table>
<thead>
  <tr><th>DDL</th><th>DML</th><th>Descripción</th></tr>
</thead>
<tbody>
  <tr><td colspan="2">BOOLEANO</td><td>Los valores son true y false.</td></tr>
  <tr><td colspan="2">TINYINT</td><td>Un número entero firmado de 8 bits en formato de complemento de dos, con un valor mínimo de -27 y un valor máximo de 27-1.</td></tr>
  <tr><td colspan="2">SMALLINT</td><td>Un número entero firmado de 16 bits en formato de complemento de dos, con un valor mínimo de -215 y un valor máximo de 215-1.</td></tr>
  <tr><td colspan="2">INT, INTEGER</td><td>Un firmado de 32 bits en formato de complemento de dos, con un valor mínimo de -231 y un valor máximo de 231-1.</td></tr>
  <tr><td colspan="2">BIGINT</td><td> Un número entero firmado de 64 bits en formato de complemento de dos, con un valor mínimo de -263 y un valor máximo de 263-1.</td></tr>
  <tr><td>FLOAT</td><td>REAL</td><td>Un número firmado de punto flotante de precisión simple de 32 bits. El rango es de 1.40129846432481707e-45 a 3.40282346638528860e\+38, positivo o negativo. Sigue el Estándar IEEE para Aritmética de Punto Flotante (IEEE 754).</td></tr>
  <tr><td colspan="2">DOUBLE</td><td>Un número firmado de punto flotante de doble precisión de 64 bits. El rango es de 4.94065645841246544e-324d a 1.79769313486231570e\+308d, positivo o negativo. Sigue el Estándar IEEE para Aritmética de Punto Flotante (IEEE 754).</td></tr>
  <tr><td colspan="2">DECIMAL ({{precisión}}, {{escala}})</td><td>{{precision}} es el número total de dígitos. {{scale}} (opcional) es el número de dígitos de la parte fraccionaria con un valor predeterminado de 0. Por ejemplo, utilice estas definiciones de tipo: decimal(11,5), decimal(15). El valor máximo para {{precisión}} es 38 y el valor máximo para {{escala}} también es 38.</td></tr>
  <tr><td colspan="2">CHAR, CHAR ({{longitud}})</td><td>Datos de caracteres de longitud fija, con una longitud especificada comprendida entre 1 y 255 como, por ejemplo, car(10) . Si se especifica la {{longitud}}, las cadenas se truncan en la longitud especificada cuando se leen. Si la cadena de datos subyacente es más larga, esta permanece sin cambios.<br />Para obtener más información, consulte [Tipo de datos Hive CHAR](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-char).</td></tr>
  <tr><td>STRING</td><td>VARCHAR</td><td>Datos de caracteres de longitud variable.</td></tr>
  <tr><td colspan="2">VARCHAR ({{longitud}})</td><td>Datos de caracteres de longitud variable con una longitud máxima de lectura. Las cadenas se truncan con la longitud especificada cuando se leen. Si la cadena de datos subyacente es más larga, esta permanece sin cambios.</td></tr>
  <tr><td>BINARIO</td><td>VARBINARY</td><td>Datos binarios de longitud variable.</td></tr>
  <tr><td>No disponible</td><td>HORA</td><td>Hora del día con precisión de milisegundos.</td></tr>
  <tr><td>No disponible</td><td>HORA ({{precisión}})</td><td>Una hora del día con una precisión específica. TIME(3) es equivalente a TIME.</td></tr>
  <tr><td>No disponible</td><td>HORA CON ZONA HORARIA</td><td>Hora del día en una zona horaria. Las zonas horarias deben especificarse como desfases con respecto a la UTC.</td></tr>
  <tr><td colspan="2">DATE</td><td>Una fecha de calendario con el año, el mes y el día.</td></tr>
  <tr><td>MARCA DE TIEMPO</td><td>MARCA DE TIEMPO, MARCA DE TIEMPO SIN ZONA HORARIA</td><td>Una fecha y hora del día del calendario con una precisión de milisegundos.</td></tr>
  <tr><td>No disponible</td><td>MARCA DE TIEMPO ({{precisión}}), MARCA DE TIEMPO ({{precisión}}) SIN ZONA HORARIA</td><td>Una fecha y hora del día del calendario con una precisión específica. TIMESTAMP(3) es equivalente a TIMESTAMP.</td></tr>
  <tr><td>No disponible</td><td>MARCA DE TIEMPO CON ZONA HORARIA</td><td>Fecha y hora del día del calendario en una zona horaria. Las zonas horarias se pueden especificar como desfases con respecto a UTC, como nombres de zonas horarias de la IANA, o mediante UTC, UT, Z o GMT.</td></tr>
  <tr><td>No disponible</td><td>MARCA DE TIEMPO({{precisión}}) CON ZONA HORARIA</td><td>Una fecha y hora del día del calendario con una precisión específica, en una zona horaria.</td></tr>
  <tr><td>No disponible</td><td>INTERVALO AÑO A MES</td><td>Un intervalo de uno o más meses enteros</td></tr>
  <tr><td>No disponible</td><td>INTERVALO DÍA A SEGUNDO</td><td>Un intervalo de uno o más segundos, minutos, horas o días</td></tr>
  <tr><td>ARRAY<{{element\_type}}></td><td>ARRAY[{{element\_type}}]</td><td>Una matriz de valores. Todos los valores deben ser del mismo tipo de dato.</td></tr>
  <tr><td>MAP<{{key\_type}}, {{value\_type}}></td><td>MAPA({{key\_type}}, {{value\_type}})</td><td>Un mapa en el que los valores se pueden buscar por clave. Todas las claves y todos los valores deben ser del mismo tipo de dato. Por ejemplo, map<string, integer>.</td></tr>
  <tr><td>STRUCT<{{field\_name\_1}}:{{field\_type\_1}}, {{field\_name\_2}}:{{field\_type\_2}}, …></td><td>FILA({{field\_name\_1}} {{field\_type\_1}}, {{field\_name\_2}} {{field\_type\_2}}, …)</td><td>Estructura de datos con campos con nombre y sus valores.</td></tr>
  <tr><td>No disponible</td><td>JSON</td><td>Tipo de valor JSON, que puede ser un objeto JSON, una matriz JSON, un número JSON, una cadena JSON, true, false o null.</td></tr>
  <tr><td>No disponible</td><td>UUID</td><td>Un UUID (identificador único universal).</td></tr>
  <tr><td>No disponible</td><td>IPADDRESS</td><td>Una dirección IPv4 o IPv6.</td></tr>
  <tr><td rowspan="5">No disponible</td><td>[HyperLogLog](https://trino.io/docs/current/language/types.html#hyperloglog-type)</td><td rowspan="5">Estos tipos de datos admiten funciones internas aproximadas. Para obtener más información acerca de cada tipo, visite el enlace a la entrada correspondiente en la documentación de Trino.</td></tr>
  <tr><td>[P4HyperLogLog](https://trino.io/docs/current/language/types.html#p4hyperloglog)</td></tr>
  <tr><td>[SetDigest](https://trino.io/docs/current/language/types.html#setdigest)</td></tr>
  <tr><td>[QDigest](https://trino.io/docs/current/language/types.html#quantile-digest)</td></tr>
  <tr><td>[TDigest](https://trino.io/docs/current/language/types.html#t-digest)</td></tr>
</tbody>
</table>


**Topics**
+ [Ejemplos de tipos de datos](data-types-examples.md)
+ [Consideraciones sobre los tipos de datos](data-types-considerations.md)
+ [Trabajo con datos de marca de tiempo](data-types-timestamps.md)