数据类型
本部分介绍了 Amazon Redshift 和 BigQuery 中的数据类型之间的等效项。
| Amazon Redshift | BigQuery | 备注 | |
|---|---|---|---|
| 数据类型 | 别名 | 数据类型 | |
| SMALLINT | INT2 | INT64 | Amazon Redshift 的 SMALLINT 为 2 个字节,而 BigQuery 的 INT64 为 8 个字节。 |
| INTEGER | INT, INT4 | INT64 | Amazon Redshift 的 INTEGER 为 4 个字节,而 BigQuery 的 INT64 为 8 个字节。 |
| BIGINT | INT8 | INT64 | Amazon Redshift 的 BIGINT 和 BigQuery 的 INT64 均为 8 个字节。 |
| DECIMAL | NUMERIC | NUMERIC | |
| REAL | FLOAT4 | FLOAT64 | Amazon Redshift 的 REAL 为 4 个字节,而 BigQuery 的 FLOAT64 为 8 个字节。 |
| DOUBLE PRECISION | FLOAT8, FLOAT | FLOAT64 | |
| BOOLEAN | BOOL | BOOL | Amazon Redshift 的 BOOLEAN 可以使用 TRUE、t、true、y、yes 和 1 作为 true 的有效字面量值。BigQuery 的 BOOL 数据类型使用不区分大小写的 TRUE。 |
| CHAR | CHARACTER, NCHAR, BPCHAR | STRING | |
| VARCHAR | CHARACTER VARYING, NVARCHAR, TEXT | STRING | |
| DATE | DATE | ||
| TIMESTAMP | TIMESTAMP WITHOUT TIME ZONE | DATETIME | |
| TIMESTAMPTZ | TIMESTAMP WITH TIME ZONE | TIMESTAMP | 注意:在 BigQuery 中,当解析时间戳或设置时间戳格式以用于显示时,系统会使用时区。字符串格式的时间戳可能包含时区,但当 BigQuery 解析字符串时,会采用等效的世界协调时间 (UTC) 存储该时间戳。如果未明确指定时区,则系统会使用默认时区,即世界协调时间 (UTC)。支持时区名称或使用 (-|+)HH:MM 表示相对于世界协调时间 (UTC) 的偏移量,但不支持时区缩写(如 PDT)。 |
| GEOMETRY | GEOGRAPHY | 支持查询地理空间数据。 | |
| - | - | ARRAY | |
| - | - | BYTES | |
| - | - | TIME | |
| - | - | STRUCT | |
| EXCEPT | - | ||
| REPLACE | - | ||
| UNION | UNION DISTINCT | ||
| INTERSECT | INTERSECT DISTINCT | ||
| SELECT * FROM table1 UNION SELECT * FROM table2 EXCEPT SELECT * FROM table3 | SELECT * FROM table1 UNION ALL ( SELECT * FROM table2 EXCEPT SELECT * FROM table3 ) 注意:BigQuery 需要使用英文括号来分隔不同的集合运算。如果重复同一集合运算符,则不需要使用英文括号 |
||
| DELETE [FROM] table_name | DELETE FROM table_name WHERE TRUE | 在 BigQuery 中,DELETE 语句必须具有 WHERE 子句 |
|
igQuery 会对以下数据类型执行隐式转换:
| 从 BigQuery 类型 | 到 BigQuery 类型 |
|---|---|
INT64 |
FLOAT64 |
INT64 |
NUMERIC |
NUMERIC |
FLOAT64 |
BigQuery 还会对以下字面量执行隐式转换:
| 从 BigQuery 类型 | 到 BigQuery 类型 |
|---|---|
STRING 字面量 (例如"2008-12-25") |
DATE |
STRING 字面量 (例如"2008-12-25 15:30:00") |
TIMESTAMP |
STRING 字面量 (例如"2008-12-25T07:30:00") |
DATETIME |
STRING 字面量 (例如"15:30:00") |
TIME |