

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Tipi di dati
<a name="iot-sql-data-types"></a>

Il motore AWS IoT delle regole supporta tutti i tipi di dati JSON.


**Tipi di dati supportati**  

| Tipo | Significato | 
| --- | --- | 
| Int | Un discreto Int. 34 cifre al massimo. | 
| Decimal |  Tipo `Decimal` con una precisione di 34 cifre, con grandezza minima diversa da zero corrispondente a 1E-999 e grandezza massima di 9.999…E999.  Alcune funzioni restituiscono valori `Decimal` a precisione doppia invece di 34 cifre di precisione.  Con SQL V2 (23/03/2016), valori numerici che sono numeri interi, come `10.0`, vengono elaborati come un valore `Int` (`10`) invece del previsto valore `Decimal` (`10.0`). Per elaborare in modo affidabile valori numerici interi come i valori `Decimal`, utilizzare SQL V1 (08/10/2015) per l'istruzione di query della regola.   | 
| Boolean | True o False. | 
| String | Stringa UTF-8. | 
| Array | Serie di valori non necessariamente dello stesso tipo. | 
| Object | Valore JSON costituito da una chiave e un valore. Le chiavi devono essere stringhe. I valori possono essere di qualsiasi tipo. | 
| Null | Null come definito da JSON. Si tratta di un valore effettivo che rappresenta l'assenza di un valore. È possibile creare in modo esplicito un valore Null usando la parola chiave Null nell'istruzione SQL. Ad esempio: "SELECT NULL AS n FROM 'topic/subtopic'"  | 
| Undefined |  Non un valore. Non si tratta di in tipo rappresentabile in modo esplicito in JSON, se non omettendo il valore. Ad esempio, nell'oggetto `{"foo": null}` la chiave "foo" restituisce NULL, ma la chiave "bar" restituisce `Undefined`. Internamente, il linguaggio SQL tratta `Undefined` come un valore, ma questo tipo non è rappresentabile in JSON, quindi quando viene serializzato in JSON i risultati sono `Undefined`. <pre> {"foo":null, "bar":undefined} </pre> viene serializzato in JSON come: <pre> {"foo":null}</pre> Analogamente, `Undefined` viene convertito in una stringa vuota quando serializzato. Le funzioni chiamate con argomenti non validi (ad esempio tipi errati, numero errato di argomenti e così via) restituiscono `Undefined`.   | 

## Conversioni
<a name="iot-sql-conversions"></a>

La tabella seguente elenca i risultati quando un valore di un tipo viene convertito in un altro tipo (quando un valore del tipo non corretto viene fornito a una funzione). Se, ad esempio, alla funzione di valore assoluto "abs" (che richiede un tipo `Int` o `Decimal`) viene passato un tipo `String`, viene eseguito un tentativo di convertire `String` in `Decimal`, seguendo queste regole. In questo caso, 'abs("-5.123")' viene trattato come 'abs(-5.123)'.

**Nota**  
Non vengono eseguiti tentativi di conversione in un tipo `Array``Object`, `Null` o `Undefined`.


**Nel tipo Decimal**  

| Tipo di argomento | Risultato | 
| --- | --- | 
| Int | Tipo Decimal senza separatore decimale. | 
| Decimal | Valore di origine. | 
| Boolean | Undefined. (È possibile usare in modo esplicito la funzione cast per trasformare true = 1.0, false = 0.0.) | 
| String | Il motore SQL tenta di analizzare la stringa come una. Decimal AWS IoT tenta di analizzare le stringhe che corrispondono all'espressione regolare:. ^-?\$1d\$1(\$1.\$1d\$1)?((?i)E-?\$1d\$1)?\$1 "0", "-1.2", "5E-12" sono tutti esempi di stringhe che vengono convertite automaticamente in tipi Decimal. | 
| Array | Undefined. | 
| Oggetto | Undefined. | 
| Null | Null. | 
| Undefined | Undefined. | 


**Nel tipo Int**  

| Tipo di argomento | Risultato | 
| --- | --- | 
| Int | Valore di origine. | 
| Decimal | Valore di origine arrotondato al valore Int più vicino. | 
| Boolean | Undefined. (È possibile usare in modo esplicito la funzione cast per trasformare true = 1.0, false = 0.0.) | 
| String |  Il motore SQL tenta di analizzare la stringa come una. Decimal AWS IoT tenta di analizzare le stringhe che corrispondono all'espressione regolare:. ^-?\$1d\$1(\$1.\$1d\$1)?((?i)E-?\$1d\$1)?\$1 «0", «-1.2", «5E-12" sono tutti esempi di stringhe che vengono convertite automaticamente in Decimal s. AWS IoT Tenta di convertirle in aDecimal, quindi tronca le String posizioni decimali per formare un. Decimal Int | 
| Array | Undefined. | 
| Oggetto | Undefined. | 
| Null | Null. | 
| Undefined | Undefined. | 


**Nel tipo Boolean**  

| Tipo di argomento | Risultato | 
| --- | --- | 
| Int | Undefined. (È possibile usare in modo esplicito la funzione cast per trasformare 0 = False, any\$1nonzero\$1value = True). | 
| Decimal | Undefined. (È possibile usare in modo esplicito la funzione cast per trasformare 0 = False, qualsiasi\$1valore\$1diverso\$1da\$1zero = True.) | 
| Boolean | Valore originale. | 
| String | "true"=True e "false"=False (senza distinzione tra maiuscole e minuscole). Altri valori stringa sono Undefined. | 
| Array | Undefined. | 
| Oggetto | Undefined. | 
| Null | Undefined. | 
| Undefined | Undefined. | 


**Nel tipo String**  

| Tipo di argomento | Risultato | 
| --- | --- | 
| Int | Rappresentazione di stringa del tipo Int in notazione standard. | 
| Decimal | Stringa che rappresenta il valore Decimal, possibilmente in notazione scientifica.  | 
| Boolean | "true" o "false". Tutto in caratteri minuscoli. | 
| String | Valore originale. | 
| Array | Tipo Array serializzato in JSON. La stringa risultante è un elenco separato da virgole, racchiuso tra parentesi quadre. I tipi String sono racchiusi tra virgolette. I tipi Decimal, Int, Boolean e Null non sono racchiusi tra virgolette. | 
| Oggetto | Oggetto serializzato in JSON. La stringa risultante è un elenco separato da virgole di coppie chiave-valore e inizia e termina con parentesi graffe. I tipi String sono racchiusi tra virgolette. I tipi Decimal, Int, Boolean e Null non sono racchiusi tra virgolette. | 
| Null | Undefined. | 
| Undefined | Undefined. | 