

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Tipos de dados
<a name="iot-sql-data-types"></a>

O mecanismo de AWS IoT regras é compatível com todos os tipos de dados JSON.


**Tipos de dados compatíveis**  

| Tipo | Significado | 
| --- | --- | 
| Int | Um discreto Int. 34 dígitos no máximo. | 
| Decimal |  Um `Decimal` com uma precisão de 34 dígitos, com um mínimo de magnitude não zero de 1E-999 e um máximo de magnitude de 9,999...E999.  Algumas funções geram valores `Decimal` com precisão dupla em vez de precisão de 34 dígitos.  Com o SQL V2 (23/03/2016), valores numéricos que são números inteiros, como `10.0`, são processados como um valor `Int` (`10`) em vez do valor `Decimal` esperado (`10.0`). Para processar de forma confiável valores numéricos inteiros como valores `Decimal`, use o SQL V1 (08/10/2015) para a instrução de consulta de regra.   | 
| Boolean | True ou False. | 
| String | Uma string UTF-8. | 
| Array | Uma série de valores que não precisam ter o mesmo tipo. | 
| Object | Um valor JSON que consiste em uma chave e um valor. As chaves devem ser strings. Os valores podem ser de qualquer tipo. | 
| Null | Null conforme definido pelo JSON. É um valor real que representa a ausência de um valor. Você pode criar explicitamente um valor Null usando a palavra-chave Null na declaração do SQL. Por exemplo: "SELECT NULL AS n FROM 'topic/subtopic'"  | 
| Undefined |  Não é um valor. Não é explicitamente representável no JSON, exceto ao omitir o valor. Por exemplo, no objeto `{"foo": null}`, a chave "foo" gera NULL, mas a chave "bar" gera `Undefined`. Internamente, a linguagem SQL trata `Undefined` como um valor, mas não é representável no JSON; portanto, quando serializados para JSON, os resultados são `Undefined`. <pre> {"foo":null, "bar":undefined} </pre> é serializado para JSON como: <pre> {"foo":null}</pre> Da mesma forma, `Undefined` é convertido em uma string vazia quando serializado por conta própria. Funções chamadas com argumentos inválidos (por exemplo, tipos incorretos, número incorreto de argumentos, etc.) retornam `Undefined`.   | 

## Conversões
<a name="iot-sql-conversions"></a>

A tabela a seguir indica os resultados quando um valor de um tipo é convertido em outro tipo (quando um valor do tipo incorreto é dado a uma função). Por exemplo, se a função de valor absoluto "abs" (que espera um `Int` ou `Decimal`) for dado a `String`, ela tentará converter `String` em um `Decimal`, seguindo essas regras. Nesse caso, “abs ("-5,123")” é tratado como “abs(-5,123)”.

**nota**  
Não há tentativa de conversões para `Array`, `Object`, `Null` ou `Undefined`.


**Para decimal**  

| Tipo de argumento | Resultado | 
| --- | --- | 
| Int | Um Decimal sem ponto decimal. | 
| Decimal | O valor de origem. | 
| Boolean | Undefined. (Você pode explicitamente usar a função cast para transformar verdadeiro = 1,0, falso = 0,0.) | 
| String | O mecanismo SQL tenta analisar a string como a. Decimal AWS IoT tenta analisar cadeias de caracteres que correspondam à expressão regular:. ^-?\$1d\$1(\$1.\$1d\$1)?((?i)E-?\$1d\$1)?\$1 "0", "-1,2" e "5E-12" são exemplos de strings que são automaticamente convertidas em Decimals. | 
| Array | Undefined. | 
| Objeto | Undefined. | 
| Null | Null. | 
| Não definido | Undefined. | 


**Para int**  

| Tipo de argumento | Resultado | 
| --- | --- | 
| Int | O valor de origem. | 
| Decimal | O valor de origem arredondado para o Int mais próximo. | 
| Boolean | Undefined. (Você pode explicitamente usar a função cast para transformar verdadeiro = 1,0, falso = 0,0.) | 
| String |  O mecanismo SQL tenta analisar a string como a. Decimal AWS IoT tenta analisar cadeias de caracteres que correspondam à expressão regular:. ^-?\$1d\$1(\$1.\$1d\$1)?((?i)E-?\$1d\$1)?\$1 “0", “-1.2", “5E-12" são todos exemplos de strings que são convertidas automaticamente em Decimal s. AWS IoT tenta converter o em a eDecimal, em seguida, trunca as casas decimais String para formar um. Decimal Int | 
| Array | Undefined. | 
| Objeto | Undefined. | 
| Null | Null. | 
| Não definido | Undefined. | 


**Para Booleano**  

| Tipo de argumento | Resultado | 
| --- | --- | 
| Int | Undefined. (Você pode explicitamente usar a função cast para transformar 0 = Falso, qualquer\$1valor\$1não\$1zero = Verdadeiro.) | 
| Decimal | Undefined. (Você pode explicitamente usar a função cast para transformar 0 = Falso, qualquer\$1valor\$1não\$1zero = Verdadeiro.) | 
| Boolean | O valor original. | 
| String | "true" = Verdadeiro e "false" = Falso (não diferencia maiúsculas de minúsculas). Outros valores de string são Undefined. | 
| Array | Undefined. | 
| Objeto | Undefined. | 
| Null | Undefined. | 
| Não definido | Undefined. | 


**Para string**  

| Tipo de argumento | Resultado | 
| --- | --- | 
| Int | Uma representação de string do Int em notação padrão. | 
| Decimal | Uma string representando o valor Decimal, possivelmente em notação científica.  | 
| Boolean | "true" ou "false". Todas as letras minúsculas. | 
| String | O valor original. | 
| Array | A Array serializada para JSON. A string resultante é uma lista separada por vírgulas, entre colchetes. A String tem aspas. Um Decimal, Int, Boolean e Null não. | 
| Objeto | O objeto serializado para JSON. A string resultante é uma lista separada por vírgulas de pares de chave/valor e começa e termina com chaves. A String tem aspas. Um Decimal, Int, Boolean e Null não. | 
| Null | Undefined. | 
| Não definido | Indefinido. | 