Tipi di dati SQL legacy
Questo documento descrive in dettaglio i tipi di dati supportati dall'API BigQuery sintassi delle query SQL precedente. La sintassi delle query preferita per BigQuery è GoogleSQL. Per informazioni sui tipi di dati in GoogleSQL, consulta i tipi di dati GoogleSQL.
Tipi di dati SQL legacy
I dati possono includere i seguenti tipi di dati:
Tipo di dati | Valori possibili | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
STRING | Dati UTF-8 con caratteri di lunghezza variabile. | ||||||||||||
BYTES |
Dati binari di lunghezza variabile.
|
||||||||||||
INTEGER |
Numero intero con segno a 64 bit. Se utilizzi l'API BigQuery per caricare un numero intero al di fuori dell'intervallo di [-253+1, 253-1] (nella maggior parte dei casi, significa maggiore di 9.007.199.254.740.991), in un numero intero (INT64), devi trasmetterla come stringa per evitare il danneggiamento dei dati. Questo problema è causato da una limitazione della dimensione dei numeri interi in JSON/ECMAScript. Per ulteriori informazioni, vedi la sezione Numeri di RFC 7159. |
||||||||||||
FLOAT | Formato con rappresentazione in virgola mobile a precisione doppia. | ||||||||||||
NUMERICO | SQL precedente supporta limitato per NUMERIC. Per ulteriori informazioni, consulta Numerico esatto in SQL precedente. | ||||||||||||
BIGNUMERIC | L'SQL precedente ha un supporto limitato per BIGNUMERIC. Per ulteriori informazioni, consulta Numerico esatto 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 data/ora del calendario. BigQuery archivia internamente i dati TIMESTAMP come timestamp UNIX con precisione in microsecondi. Timestamp UNIX Un numero decimale positivo o negativo. Un numero positivo specifica il numero di secondi dall'epoca (1970-01-01 00:00:00 UTC), mentre un numero negativo specifica il numero di secondi prima dell'epoca. Vengono mantenute fino a sei posizioni decimali (precisione in microsecondi). Stringhe per data e ora Una stringa di data e ora nel formato Puoi fornire un offset di fuso orario nelle stringhe con data e ora, ma BigQuery non conserva l'offset dopo aver convertito il valore nel suo formato interno. Se devi conservare i dati originali sul fuso orario, e archiviare lo scarto con il fuso orario in una colonna separata. Lo zero iniziale è necessaria quando specifichi uno scarto con il fuso orario a una sola cifra. Le stringhe di data e ora devono essere racchiuse tra virgolette se si utilizza il formato JSON. Esempi I seguenti esempi mostrano modi identici per descrivere date specifiche, nei formati timestamp UNIX e stringa data e ora.
|
||||||||||||
DATA | SQL precedente supporta limitato per DATE. Per ulteriori informazioni, consulta Tempo civile in SQL precedente. | ||||||||||||
TEMPO | L'SQL precedente ha un supporto limitato per TIME. Per ulteriori informazioni, consulta Tempo civile in SQL precedente. | ||||||||||||
DATETIME | L'SQL precedente ha un supporto limitato per DATETIME. Per ulteriori informazioni, consulta Tempo civile in SQL precedente. |
Valore numerico esatto in SQL precedente
Puoi leggere i valori NUMERIC o BIGNUMERIC in clausole di non modifica come
SELECT list (with aliases)
, GROUP BY keys
e campi passthrough in
funzioni finestra e così via. Tuttavia, qualsiasi calcolo su NUMERIC o
Valori di BIGNUMERIC, inclusi i confronti, producono risultati indefiniti.
Le seguenti funzioni di trasmissione 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 all'ora civile: DATE, TIME e
DATETIME: e li elaborerai con operatori che non cambiano, come
SELECT list (with aliases)
, GROUP BY keys
e campi passthrough in
funzioni finestra e così via. Tuttavia, qualsiasi altro calcolo su valori dell'ora civile,
inclusi i confronti, produce risultati indefiniti.
Le seguenti funzioni di trasmissione 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, l'SQL precedente interpreta i valori dell'ora civile come numeri interi e le operazioni numeri interi che a tuo parere sono valori dell'ora civile producono risultati inaspettati.
Per calcolare i valori utilizzando tipi di dati dell'ora civile, considera GoogleSQL, che supporta tutte le operazioni sul DATE, DATETIME e Tipi di dati di TIME.
Passaggi successivi
- Per impostare il tipo di dati di un campo utilizzando l'API, consulta
schema.fields.type
. - Per i tipi di dati GoogleSQL, consulta la pagina relativa ai tipi di dati.