当我使用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
。
如何修复命令行查询?
答案 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