

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

**Importante**  
O Amazon S3 Select não está mais disponível para novos clientes. Os clientes existentes do Amazon S3 Select podem continuar usando o recurso normalmente. [Saiba mais](https://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) 

O Amazon S3 Select oferece suporte a vários tipos de dados primitivos.

## Conversões de tipos de dados
<a name="s3-select-sql-reference-data-conversion"></a>

A regra geral é seguir a função `CAST` se for definida. Se `CAST` não estiver definido, todos os dados de entrada serão tratados como uma string. Nesse caso, é necessário converter seus dados de entrada em tipos de dados relevantes quando necessário.

Para obter mais informações sobre a função `CAST`, consulte [CAST](s3-select-sql-reference-conversion.md#s3-select-sql-reference-cast).

## Tipos de dados compatíveis
<a name="s3-select-sql-reference-supported-data-types"></a>

O Amazon S3 Select oferece suporte ao conjunto a seguir de tipos de dados primitivos.


|  Name (Nome)  |  Descrição  |  Exemplos  | 
| --- | --- | --- | 
| `bool` | Um valor booliano, `TRUE` ou `FALSE`. | `FALSE` | 
| `int`, `integer` | Um número inteiro assinado de 8 bytes no intervalo de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807.  | `100000` | 
| `string` | Uma string de tamanho variável codificada por UTF8. O limite padrão é de um caractere. O limite máximo de caracteres é 2.147.483.647.  | `'xyz'` | 
| `float` | Um número de ponto flutuante de 8 bytes.  | `CAST(0.456 AS FLOAT)` | 
| `decimal`, `numeric` |  Um número de base 10, com precisão máxima de 38 (ou seja, a quantidade máxima de dígitos significativos) e com uma escala no intervalo de -231 a 231-1 (ou seja, o expoente de base 10).  O Amazon S3 Select ignora a escala e a precisão quando as duas são fornecidas ao mesmo tempo.   | `123.456 ` | 
| `timestamp` |  Os carimbos de data/hora representam um momento específico, sempre incluem um deslocamento local e são capazes de oferecer precisão arbitrária. No formato de texto, os carimbos de data/hora seguem a [nota W3C sobre formatos de data e hora](https://www.w3.org/TR/NOTE-datetime), mas devem terminar com o literal `T`, se os carimbos de data/hora não forem pelo menos a precisão de dia inteiro. As frações de segundos são permitidas, com pelo menos um dígito de precisão e um máximo ilimitado. Os deslocamentos de hora local podem ser representados como deslocamentos de hora:minuto em UTC ou como o literal `Z` para indicar uma hora local em UTC. Os deslocamentos de horário local são necessários em carimbos de data/hora com hora e não são permitidos em valores de data.  | `CAST('2007-04-05T14:30Z' AS TIMESTAMP)` | 

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

O Amazon S3 Select é compatível com os seguintes tipos de Parquet.
+ `DATE`
+ `DECIMAL`
+ `ENUM`
+ `INT(8)`
+ `INT(16)`
+ `INT(32)`
+ `INT(64)`
+ `LIST`
**nota**  
Para a saída do tipo `LIST` do Parquet, o Amazon S3 Select só é compatível com o formato JSON. No entanto, se a consulta limitar os dados a valores simples, o tipo de Parquet `LIST` também poderá ser consultado em formato CSV.
+ `STRING`
+ Precisão compatível de `TIMESTAMP` (`MILLIS`/`MICROS`/`NANOS`)
**nota**  
Não há compatibilidade com carimbos de data/hora salvos como `INT(96)`.   
Devido ao intervalo do tipo `INT(64)`, os carimbos de data/hora que usam a unidade `NANOS` só podem representar valores entre `1677-09-21 00:12:43` e `2262-04-11 23:47:16`. Valores fora desse intervalo não podem ser representados com a unidade `NANOS`.

### Mapeamento de tipos de Parquet para tipos de dados compatíveis no Amazon S3 Select
<a name="s3-select-sql-reference-supported-data-types-parquet-mapping"></a>


| Tipos do Parquet | Tipos de dados compatíveis | 
| --- | --- | 
| `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 na lista é mapeado para o tipo de dados correspondente.  | 
|  `STRING`  |  `string`  | 
|  `TIMESTAMP`  |  `timestamp`  | 