Google bigquery 在BigQuery中使用_PARTITIONDATE与_PARTITIONTIME伪列

Google bigquery 在BigQuery中使用_PARTITIONDATE与_PARTITIONTIME伪列,google-bigquery,Google Bigquery,在官方最佳实践中,我: 按日期对表进行分区并查询相关分区;例如,其中_PARTITIONDATE=“2017-01-01”仅扫描2017年1月1日的分区 我开始大量使用\u PARTITIONDATE伪列,因为我发现这样编写查询比\u PARTITIONTIME列更容易,并在我的日期上应用TIMESTAMP()函数,如下所示: 其中_PARTITIONTIME=时间戳('2016-03-28')) 我想知道我是否应该继续使用\u PARTITIONDATE——因为我找不到更多关于它的文档。另外,

在官方最佳实践中,我:

按日期对表进行分区并查询相关分区;例如,其中_PARTITIONDATE=“2017-01-01”仅扫描2017年1月1日的分区

我开始大量使用
\u PARTITIONDATE
伪列,因为我发现这样编写查询比
\u PARTITIONTIME
列更容易,并在我的日期上应用
TIMESTAMP()
函数,如下所示:

其中_PARTITIONTIME=时间戳('2016-03-28'))

我想知道我是否应该继续使用
\u PARTITIONDATE
——因为我找不到更多关于它的文档。另外,与
\u PARTITIONTIME
相比,它在基于web的BigQuerySQL编辑器中没有突出显示语法


是否正式采用了
\u PARTITIONTIME
而不是
\u PARTITIONDATE

\u PARTITIONDATE
的方法,因为它与已发布的功能不对应,所以没有文档记录。您应该使用
\u PARTITIONTIME
,除非我们在中宣布新功能

完全一样

WHERE _PARTITIONTIME = '2016-03-28'

\u PARTITIONTIME
列是一个时间戳,因此后一个示例右侧的字符串文本被强制为时间戳。就语法突出显示而言,当前UI在识别内置函数方面存在一些限制,但即将到来的UI刷新有望解决这一问题。

您在第二行中提到了两次
\u PARTITIONTIME
,但我猜您的意思是
\u PARTITIONDATE
?我知道它们在语义上是相同的,我只是想确保不要使用官方不支持的东西,以避免该列将来可能消失。(所以我的问题是关于
\u PARTITIONDATE
\u PARTITIONTIME
)哦,对不起,我明白你的意思了<代码>\u PARTITIONDATE未记录,因为它与已发布的功能不对应。除非我们在中宣布了一项新功能,否则您应该使用
\u PARTITIONTIME
。感谢您的澄清,我已更新了您的答案,以便人们无需阅读评论即可轻松获取信息!我想应该更新,然后使用
\u PARTITIONTIME
?虽然我在发行说明中找不到它,但现在已经有了
\u PARTITIONDATE
的文档,所以应该可以安全使用。从2021年5月起,文档包含
其中现在有
\u PARTITIONTIME=“2017-01-01”
,而且还提到了
\u PARTITIONTIME
。这令人困惑,但我想它们可以互换使用。
WHERE _PARTITIONTIME = '2016-03-28'