Types de données compatibles avec l'ancien SQL
Ce document détaille les types de données compatibles avec l'ancien SQL, la syntaxe de requête de BigQuery. La syntaxe de requête privilégiée pour BigQuery est GoogleSQL. Pour en savoir plus sur les types de données du langage GoogleSQL, consultez la page Types de données GoogleSQL.
Types de données compatibles avec l'ancien SQL
Vos données peuvent inclure les types de données suivants :
Type de données | Valeurs possibles | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
STRING | Données de type caractères de longueur variable (UTF-8). | ||||||||||||
BYTES |
Données binaires de longueur variable.
|
||||||||||||
NOMBRE ENTIER |
Entier signé de 64 bits. Si vous utilisez l'API BigQuery pour charger un entier situé en dehors de la plage [-253+1, 253-1] (dans la plupart des cas, cela signifie supérieur à 9 007 199 254 740 991), dans une colonne d'entiers (INT64), vous devez la transmettre en tant que chaîne pour éviter toute corruption des données. Ce problème est causé par une limite de taille d'entier dans JSON/ECMAScript. Pour en savoir plus, consultez la section Nombre de la RFC 7159. |
||||||||||||
FLOAT | Format à virgule flottante avec deux décimales. | ||||||||||||
NUMERIC | L'ancien SQL est compatible de façon limitée avec le type de données NUMERIC. Pour en savoir plus, consultez la section Valeurs numériques exactes en ancien SQL. | ||||||||||||
BIGNUMERIC | L'ancien SQL est compatible de façon limitée avec le type de données BIGNUMERIC. Pour en savoir plus, consultez la section Valeurs numériques exactes en ancien SQL. | ||||||||||||
BOOLÉEN |
|
||||||||||||
RECORD | Collection d'un ou de plusieurs autres champs. | ||||||||||||
TIMESTAMP |
Vous pouvez décrire les données de type TIMESTAMP comme étant des horodatages UNIX, ou des dates et heures de calendrier. BigQuery stocke les données TIMESTAMP en interne sous la forme d'un code temporel UNIX avec une précision de l'ordre de la microseconde. Horodatages UNIX Un nombre décimal positif ou négatif. Un nombre positif spécifie le nombre de secondes écoulées depuis l'itération (1970-01-01 00:00:00 UTC), et un nombre négatif spécifie le nombre de secondes avant l'itération. Les décimales sont conservées jusqu'à la sixième (précision à la microseconde). Chaînes de date et heure Chaîne de date et heure au format Vous pouvez fournir un décalage horaire dans vos chaînes de date et heure, mais BigQuery ne conserve pas le décalage après la conversion de la valeur dans son format interne. Si vous devez conserver les données de fuseau horaire d'origine, stockez le décalage horaire dans une colonne distincte. Un décalage de fuseau horaire à un chiffre doit commencer par un zéro. Les chaînes de date et heure doivent être indiquées lors de l'utilisation du format JSON. Exemples Les exemples suivants montrent des méthodes identiques pour décrire des dates spécifiques, dans un format de code temporel UNIX et dans un format de chaîne de date et heure.
|
||||||||||||
DATE | L'ancien SQL est compatible de façon limitée avec les données de type DATE. Pour en savoir plus, consultez la section Types de données de temps civil en ancien SQL. | ||||||||||||
TIME | L'ancien SQL est compatible de façon limitée avec les données de type TIME. Pour en savoir plus, consultez la section Types de données de temps civil en ancien SQL. | ||||||||||||
DATETIME | L'ancien SQL est compatible de façon limitée avec les données de type DATETIME. Pour en savoir plus, consultez la section Types de données de temps civil en ancien SQL. |
Valeurs numériques exactes en ancien SQL
Vous pouvez lire les valeurs de type NUMERIC ou BIGNUMERIC dans des clauses non modificatrices telles que SELECT list (with aliases)
, GROUP BY keys
et les champs d'intercommunication dans les fonctions analytiques, etc. Cependant, tout calcul sur des valeurs NUMERIC ou BIGNUMERIC (y compris les comparaisons) produit des résultats non définis.
Les fonctions de conversion suivantes sont compatibles avec l'ancien SQL :
CAST(<numeric> AS STRING)
CAST(<bignumeric> AS STRING)
CAST(<string> AS NUMERIC)
CAST(<string> AS BIGNUMERIC)
Types de données de temps civil en ancien SQL
Vous pouvez afficher les types de données de temps civil (DATE, TIME et DATETIME) et les traiter avec des opérateurs non modificateurs tels que SELECT list (with aliases)
, GROUP BY keys
, les champs d'intercommunication dans les fonctions analytiques, etc. En revanche, certains calculs sur les valeurs de temps civil, comme les comparaisons, produisent des résultats non définis.
Les fonctions de conversion suivantes sont compatibles avec l'ancien SQL :
CAST(<date> AS STRING)
CAST(<time> AS STRING)
CAST(<datetime> AS STRING)
CAST(<string> AS DATE)
CAST(<string> AS TIME)
CAST(<string> AS DATETIME)
En pratique, l'ancien SQL interprète les valeurs de temps civil comme des nombres entiers, et les opérations sur des nombres entiers qui, selon vous, sont des valeurs de temps civil produisent des résultats inattendus.
Pour calculer des valeurs à l'aide de types de données de temps civil, utilisez le langage GoogleSQL, qui est compatible avec toutes les opérations SQL sur les types de données DATE, DATETIME et TIME.
Étapes suivantes
- Pour définir le type de données d'un champ à l'aide de l'API, consultez la section
schema.fields.type
. - Pour connaître les types de données GoogleSQL, consultez la section Types de données.