Tipos de datos de SQL heredado

En este documento, se detallan los tipos de datos que admite la sintaxis de consulta de SQL heredado de BigQuery. La sintaxis de consulta preferida para BigQuery es SQL estándar. Para obtener información sobre los tipos de datos en SQL estándar, consulta Tipos de datos de SQL estándar.

Tipos de datos de SQL heredado

Tus datos pueden incluir los tipos de datos siguientes:

Tipo de datos Valores posibles
STRING Datos de caracteres de longitud variable (UTF-8)
BYTES Datos binarios de longitud variable
  • Los datos BYTES importados deben estar codificados en base64, excepto los datos BYTES de Avro, que BigQuery puede leer y convertir.
  • Los datos BYTES que se leen en una tabla de BigQuery están codificados en base64, a menos que exportes al formato Avro, en cuyo caso, se aplica el tipo de datos Avro de bytes.
NÚMERO ENTERO Número entero de 64 bits con firma
FLOAT Formato de coma flotante de doble precisión
NUMÉRICO SQL heredado tiene asistencia limitada para NUMÉRICO. A fin de obtener más información, consulta NUMÉRICO en SQL heredado.
BOOLEANO
  • Formato CSV: 1 o 0, true o false, t o f, yes o no, o y o n (con distinción entre mayúsculas y minúsculas).
  • Formato JSON: true o false (con distinción entre mayúsculas y minúsculas).
REGISTRO Una colección de uno o más campos
MARCA DE TIEMPO

Puedes describir los tipos de datos de MARCA DE TIEMPO como marcas de tiempo de UNIX o fechas de calendario. BigQuery almacena los datos de MARCA DE TIEMPO de forma interna como una marca de tiempo de UNIX con microsegundos de precisión.

Marcas de tiempo de UNIX

Un número decimal positivo o negativo. Un número positivo especifica la cantidad de segundos desde la época (1970-01-01 00:00:00 UTC) y un número negativo especifica la cantidad de segundos antes de la época. Se conservan hasta 6 decimales (con precisión en microsegundos).

Strings de fecha y hora

Una string de fecha y hora en el formato YYYY-MM-DD HH:MM:SS. Se admiten los especificadores UTC y Z.

Puedes proporcionar un desplazamiento de zona horaria en tus strings de fecha y hora, pero BigQuery no conserva el desplazamiento después de convertir el valor en su formato interno. Si necesitas conservar los datos de la zona horaria original, almacena el desplazamiento de la zona horaria en una columna separada. El cero inicial es obligatorio cuando especificas un desplazamiento de zona horaria de un solo dígito.

Las strings de fecha y hora se deben indicar cuándo se usa el formato JSON.

Ejemplos

En los ejemplos siguientes, se muestran formas idénticas de describir fechas específicas, tanto en formato de marca de tiempo de UNIX como de string de fecha y hora.

Evento Formato de marca de tiempo de UNIX Formato de string de fecha y hora
Terremoto menor (M4.2) cerca de Oklahoma City

1408452095.220
1408452095.220000

2014-08-19 07:41:35.220 -05:00
2014-08-19 12:41:35.220 UTC
2014-08-19 12:41:35.220
2014-08-19 12:41:35.220000
2014-08-19T12:41:35.220Z
Neil Armstrong pisa la luna

-14182916

1969-07-20 20:18:04
1969-07-20 20:18:04 UTC
1969-07-20T20:18:04
Plazo para reparar el error Y10k

253402300800
2.53402300800e11

10000-01-01 00:00
FECHA SQL heredado tiene asistencia limitada para FECHA. A fin de obtener más información, consulta Hora civil en SQL heredado.
HORA SQL heredado tiene asistencia limitada para HORA. A fin de obtener más información, consulta Hora civil en SQL heredado.
FECHA Y HORA SQL heredado tiene asistencia limitada para FECHA Y HORA. A fin de obtener más información, consulta Hora civil en SQL heredado.

NUMÉRICO en SQL heredado

Puedes leer valores NUMÉRICOS y procesarlos con operadores no modificables como SELECT list (with aliases) y GROUP BY keys y pasar por campos en funciones analíticas, etcétera. Sin embargo, cualquier otro cálculo sobre valores NUMÉRICOS, incluso las comparaciones, produce resultados indefinidos.

Las funciones de conversión y conversión siguientes con compatibles con SQL heredado:

  • CAST(<numeric> AS STRING)
  • CAST(<string> AS NUMERIC)

Hora civil en SQL heredado

Puedes leer tipos de datos de hora civil; FECHA, HORA y FECHA Y HORA, y procesarlos con operadores no modificables como SELECT list (with aliases), GROUP BY keys, y pasar por campos en funciones analíticas, etcétera. Sin embargo, cualquier otro cálculo sobre valores de hora civil, incluso las comparaciones, produce resultados indefinidos.

Las funciones de transmisión y conversión siguientes son compatibles con SQL heredado:

  • 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 la práctica, el SQL heredado interpreta los valores de hora civil como números enteros, mientras que las operaciones sobre números enteros que crees que son valores de hora civil producen resultados inesperados.

Para calcular valores mediante tipos de datos de hora civil, ten en cuenta SQL estándar, que admite todas las operaciones de SQL en tipos de datos DATE, DATETIME y TIME.

Pasos siguientes

  • Para configurar un tipo de datos de campo mediante la API, consulta schema.fields.type.
  • Para tipos de datos SQL estándar, consulta data.types.
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.