为什么WHERE在Web UI中工作而在gsutil中不起作用?

时间:2018-03-22 20:20:28

标签: google-bigquery gsutil

当我使用bigquery web ui:

查询表格时,以下情况有效
select * from my_table where record_datetime > '2017-01-01 00:00:00' limit 10

但是当我使用bq运行相同的命令时,它会中断:

bq query  --use_legacy_sql=false select * FROM `mlp-1385.data.historical_bk`  where record_datetime > '2017-01-01 00:00:00' limit 10

我收到错误:

Error in query string: Error processing job
'mlp-1385:bqjob_XXXXXXXX': WHERE clause should return
WHERE clause should return
type BOOL, but returns FLOAT64

当我删除where子句时,一切都适用于webui和gsutil

如何修复命令行查询?

1 个答案:

答案 0 :(得分:0)

在Google gsutil中运行查询时,您必须使用<运算符转义>^,否则命令行会将其视为重定向。

因此,例如<变为^<>变为^>

所以我的命令行命令应该是:

bq query  --use_legacy_sql=false select * FROM `mlp-1385.data.historical_bk`  where record_datetime ^> '2017-01-01 00:00:00' limit 10