如何在 BQ 中创建基于时间戳列的分区表

use*_*422 3 google-bigquery

下表中只有两列(ts 和 transaction_id)和 3 行。我只是尝试创建基于时间戳列的分区表,但收到错误消息。

create table myfirstdataset.partition_table1(ts timestamp, transaction_id int64)partition by ts as
select timestamp '2013-12-31 01:55:02.000 UTC' ts, 10 transaction_id union all
select timestamp '2013-12-31 02:10:02.000 UTC' ts, 5 transaction_id union all
select timestamp '2013-12-31 04:20:02.000 UTC' ts, 6 transaction_id 

Error: PARTITION BY expression must be DATE(<timestamp_column>) or else a DATE column
Run Code Online (Sandbox Code Playgroud)

Mik*_*ant 8

应该PARTITION BY DATE(ts)代替PARTITION BY ts- 请参阅CREATE TABLE statementpartition_expression特别是

create table myfirstdataset.partition_table1(ts timestamp, transaction_id int64)partition by date(ts) as
select timestamp '2013-12-31 01:55:02.000 UTC' ts, 10 transaction_id union all
select timestamp '2013-12-31 02:10:02.000 UTC' ts, 5 transaction_id union all
select timestamp '2013-12-31 04:20:02.000 UTC' ts, 6 transaction_id 
Run Code Online (Sandbox Code Playgroud)