

# Tipos de datos
<a name="s3-select-sql-reference-data-types"></a>

**importante**  
Amazon S3 Select ya no está disponible para los nuevos clientes. Los clientes actuales de Amazon S3 Select pueden seguir utilizando la característica de la forma habitual. [Más información](https://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) 

Amazon S3 Select y S3 Glacier Select admite varios tipos de datos primitivos.

## Conversiones de tipos de datos
<a name="s3-select-sql-reference-data-conversion"></a>

Por lo general, suele seguirse la función `CAST`, si está definida. Si no se ha definido `CAST`, todos los datos de entrada se tratarán como una cadena. En ese caso, deberá convertir sus datos de entrada en los tipos de datos pertinentes cuando sea necesario.

Para obtener más información sobre la función `CAST`, consulte [CAST](s3-select-sql-reference-conversion.md#s3-select-sql-reference-cast).

## Tipos de datos compatibles
<a name="s3-select-sql-reference-supported-data-types"></a>

Amazon S3 Select admite el siguiente subconjunto de tipos de datos primitivos.


|  Nombre  |  Descripción  |  Ejemplos  | 
| --- | --- | --- | 
| `bool` | Un valor booleano, ya sea `TRUE` o `FALSE`. | `FALSE` | 
| `int`, `integer` | Un entero con signo de 8 bytes comprendido entre -9 223 372 036 854 775 808 y 9 223 372 036 854 775 807.  | `100000` | 
| `string` | Una cadena de longitud variable codificada en UTF8. El límite predeterminado es de 1 carácter. El límite máximo de caracteres es de 2 147 483 647.  | `'xyz'` | 
| `float` | Un número de punto flotante de 8 bits.  | `CAST(0.456 AS FLOAT)` | 
| `decimal`, `numeric` |  Un número en base 10, con una precisión máxima de 38 (es decir, el número máximo de dígitos significativos), y con una escala en un intervalo de entre -231 y 231-1 (es decir, el exponente en base 10).  Amazon S3 Select ignora la escala y la precisión cuando se proporcionan ambos al mismo tiempo.   | `123.456 ` | 
| `timestamp` |  Las marcas temporales representan un momento concreto, siempre incluyen el desfase horario local y permiten establecer una precisión arbitraria. En formato de texto, las marcas temporales siguen los [formatos de fecha y hora de la notación W3C](https://www.w3.org/TR/NOTE-datetime), pero deben terminar por el literal `T` si las marcas temporales no tienen, como mínimo, una precisión de un día completo. Se pueden utilizar fracciones de segundo con al menos un dígito de precisión y sin ningún límite máximo. El desfase horario local puede representarse con el formato hora:minuto con relación a UTC o con el literal `Z` para indicar la hora local en UTC. Los desfases horarios locales deben incluirse en las marcas temporales que contienen la hora, pero no están permitidos en los valores de fecha.  | `CAST('2007-04-05T14:30Z' AS TIMESTAMP)` | 

### Tipos de Parquet admitidos
<a name="s3-select-sql-reference-supported-data-types-parquet"></a>

Amazon S3 Select admite los siguientes tipos de Parquet.
+ `DATE`
+ `DECIMAL`
+ `ENUM`
+ `INT(8)`
+ `INT(16)`
+ `INT(32)`
+ `INT(64)`
+ `LIST`
**nota**  
Para la salida de tipo Parquet `LIST`, Amazon S3 Select solo admite el formato JSON. Sin embargo, si la consulta limita los datos a valores simples, también se puede consultar el tipo Parquet `LIST` en formato CSV.
+ `STRING`
+ Precisión admitida de `TIMESTAMP` (`MILLIS`/`MICROS`/`NANOS`)
**nota**  
No se admiten las marcas temporales guardadas como `INT(96)`.   
Debido al rango del tipo `INT(64)`, las marcas temporales que utilizan la unidad `NANOS` solo pueden representar valores entre `1677-09-21 00:12:43` y `2262-04-11 23:47:16`. Los valores fuera de este rango no se pueden representar con la unidad `NANOS`.

### Asignación de tipos de Parquet a tipos de datos admitidos en Amazon S3 Select
<a name="s3-select-sql-reference-supported-data-types-parquet-mapping"></a>


| Tipos de Parquet | Tipos de datos compatibles | 
| --- | --- | 
| `DATE` |  `timestamp`  | 
|  `DECIMAL`  |  `decimal`, `numeric`  | 
|  `ENUM`  |  `string`  | 
|  `INT(8)`  |  `int`, `integer`  | 
|  `INT(16)`  | `int`, `integer` | 
| `INT(32)` | `int`, `integer` | 
|  `INT(64)`  |  `decimal`, `numeric`  | 
|  `LIST`  |  Cada tipo de Parquet de la lista se asigna al tipo de datos correspondiente.  | 
|  `STRING`  |  `string`  | 
|  `TIMESTAMP`  |  `timestamp`  | 