

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 | A `Decimal` con una precisione di 34 cifre, con una magnitudine minima diversa da zero pari a 1 E-999 e una magnitudine massima di 9,999... E999. Alcune funzioni restituiscono valori `Decimal` a precisione doppia invece di 34 cifre di precisione.  <br />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 | Una corda. 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><br />viene serializzato in JSON come:<pre> {"foo":null}</pre><br />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 unaDecimal. AWS IoT tenta di analizzare le stringhe che corrispondono all'espressione regolare:^-?\\d\+(\\.\\d\+)?((?i)E-?\\d\+)?$. «0", «-1.2", «5E-12" sono tutti esempi di stringhe che vengono convertite automaticamente in s. 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 tentativi di analizzare le stringhe che corrispondono all'espressione regolare:^-?\\d\+(\\.\\d\+)?((?i)E-?\\d\+)?$. «0", «-1.2", «5E-12" sono tutti esempi di stringhe che vengono convertite automaticamente in Decimal s. AWS IoT Tenta di convertire il in aDecimal, quindi tronca le posizioni decimali String per creare 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\_nonzero\_value = True). | 
| Decimal | Undefined. (È possibile usare in modo esplicito la funzione cast per trasformare 0 = False, qualsiasi\_valore\_diverso\_da\_zero = 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. | 