TABLE_QUERY 尝试使用 last_modified_time 时失败

TABLE_QUERY fails when trying to use last_modified_time

我有一个使用 TABLE_QUERY() 的现有查询,并根据 creation_time:

过滤结果
SELECT 
     *
FROM (TABLE_QUERY( project_114151_dataset , "MSEC_TO_TIMESTAMP(creation_time) > DATE_ADD(CURRENT_TIMESTAMP(), -45, 'DAY') AND REGEXP_MATCH(table_id, r'^fact_[0-9]{8}$') "))

我想根据last_modified_time将查询更改为运行;因为它也是一个以毫秒为单位的时间戳,所以我将查询更改为如下

SELECT 
     *
FROM (TABLE_QUERY( project_114151_dataset , "MSEC_TO_TIMESTAMP(last_modified_time) > DATE_ADD(CURRENT_TIMESTAMP(), -45, 'DAY') AND REGEXP_MATCH(table_id, r'^fact_[0-9]{8}$') "))

但是,当 运行ning 出现以下错误时:

Error: Error evaluating subsidiary query

不确定为什么会出现此错误;我已经通过 运行 宁以下查询验证该字段存在,并且它确实在结果中 return:

SELECT * FROM project_114151_dataset.__TABLES__ 
WHERE MSEC_TO_TIMESTAMP(creation_time)  < 
DATE_ADD(CURRENT_TIMESTAMP(), -7, 'DAY')

如有任何帮助,我们将不胜感激!

TABLE_QUERY里面的表达式不能使用table的数据,只能使用常量和自由函数(如CURRENT_TIMESTAMP)。

TABLE_QUERY() 函数中唯一可用的字段是:project_iddataset_idtable_idcreation_timetype。它们是由 __TABLES_SUMMARY__ 伪 table 返回的字段。 (尝试 SELECT * FROM project_114151_dataset.__TABLES_SUMMARY__)。