Tipi di dati SQL precedenti
Questo documento descrive in dettaglio i tipi di dati supportati dalla sintassi delle query SQL precedente di BigQuery. La sintassi di query preferita per BigQuery è GoogleSQL. Per informazioni sui tipi di dati in GoogleSQL, consulta i tipi di dati di GoogleSQL.
Tipi di dati SQL precedenti
I tuoi dati possono includere i seguenti tipi di dati:
Tipo di dati | Valori possibili | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
STRING | Dati di caratteri (UTF-8) di lunghezza variabile. | ||||||||||||
BYTES |
Dati binari di lunghezza variabile.
|
||||||||||||
INTEGER |
Numero intero a 64 bit con segno. Se utilizzi l'API BigQuery per caricare un numero intero al di fuori dell'intervallo [-253+1, 253-1] (nella maggior parte dei casi, significa maggiore di 9.007.199.254.740.991), in una colonna di numeri interi (INT64), devi passarlo come stringa per evitare la corruzione dei dati. Questo problema è causato da una limitazione delle dimensioni degli interi in JSON/ECMAScript. Per ulteriori informazioni, consulta la sezione Numeri di RFC 7159. |
||||||||||||
FLOAT | Formato a virgola mobile a precisione doppia. | ||||||||||||
NUMERIC | L'SQL precedente ha un supporto limitato per NUMERIC. Per ulteriori informazioni, consulta Numeri esatti in SQL precedente. | ||||||||||||
BIGNUMERIC | L'SQL precedente ha un supporto limitato per BIGNUMERIC. Per ulteriori informazioni, consulta Numeri esatti in SQL precedente. | ||||||||||||
BOOLEANO |
|
||||||||||||
RECORD | Una raccolta di uno o più altri campi. | ||||||||||||
TIMESTAMP |
Puoi descrivere i tipi di dati TIMESTAMP come timestamp UNIX o date e ora di calendario. BigQuery memorizza internamente i dati TIMESTAMP come timestamp UNIX con una precisione di microsecondi. Timestamp UNIX Un numero decimale positivo o negativo. Un numero positivo specifica il numero di secondi dall'epoca (01-01-1970 00:00:00 UTC) e un numero negativo specifica il numero di secondi prima dell'epoca. Vengono conservate fino a 6 cifre decimali (precisione in microsecondi). Stringhe di data e ora Una stringa di data e ora nel formato Puoi specificare un offset di fuso orario nelle stringhe di data e ora, ma BigQuery non conserva l'offset dopo aver convertito il valore nel suo formato interno. Se devi conservare i dati originali del fuso orario, archivia l'offset del fuso orario in una colonna separata. Lo zero iniziale è obbligatorio quando specifichi un offset del fuso orario a una cifra. Le stringhe di data e ora devono essere racchiuse tra virgolette quando si utilizza il formato JSON. Esempi Gli esempi riportati di seguito mostrano modi identici per descrivere date specifiche, sia in formato timestamp UNIX che in formato di stringa di data e ora.
|
||||||||||||
DATA | L'SQL precedente ha un supporto limitato per DATE. Per ulteriori informazioni, consulta Ora civile in SQL precedente. | ||||||||||||
TEMPO | L'SQL precedente ha un supporto limitato per TIME. Per ulteriori informazioni, consulta Ora civile in SQL precedente. | ||||||||||||
DATETIME | L'SQL precedente ha un supporto limitato per DATETIME. Per ulteriori informazioni, consulta Ora civile in SQL precedente. |
Numero esatto in SQL precedente
Puoi leggere i valori NUMERIC o BIGNUMERIC in clausole non modificatrici come
SELECT list (with aliases)
, GROUP BY keys
e campi di passaggio nelle
funzioni finestra e così via. Tuttavia, qualsiasi calcolo sui valori NUMERIC o BIGNUMERIC, inclusi i confronti, produce risultati non definiti.
Le seguenti funzioni di conversione e conversione sono supportate in SQL precedente:
CAST(<numeric> AS STRING)
CAST(<bignumeric> AS STRING)
CAST(<string> AS NUMERIC)
CAST(<string> AS BIGNUMERIC)
Tempo civile in SQL precedente
Puoi leggere i tipi di dati relativi al tempo civile (DATE, TIME e DATETIME) ed elaborarli con operatori non modificatori come SELECT list (with aliases)
, GROUP BY keys
e campi passthrough nelle funzioni window e così via. Tuttavia, qualsiasi altro calcolo sui valori relativi al tempo civile, inclusi i confronti, produce risultati non definiti.
Le seguenti funzioni di conversione e conversione sono supportate in SQL precedente:
CAST(<date> AS STRING)
CAST(<time> AS STRING)
CAST(<datetime> AS STRING)
CAST(<string> AS DATE)
CAST(<string> AS TIME)
CAST(<string> AS DATETIME)
In pratica, SQL precedente interpreta i valori di tempo civile come numeri interi e le operazioni su numeri interi che ritieni essere valori di tempo civile producono risultati imprevisti.
Per calcolare i valori utilizzando i tipi di dati relativi al tempo civile, valuta la possibilità di utilizzare GoogleSQL, che supporta tutte le operazioni SQL sui tipi di dati DATE, DATETIME e TIME.
Passaggi successivi
- Per impostare il tipo di dati di un campo utilizzando l'API, consulta
schema.fields.type
. - Per i tipi di dati di GoogleSQL, vedi tipi di dati.