Google bigquery 使用具有超过1年价值的表的表\u日期\u范围

Google bigquery 使用具有超过1年价值的表的表\u日期\u范围,google-bigquery,Google Bigquery,我正在尝试使用GoogleBigQuery从带有日期通配符的表中选择数据。我希望能够使用TABLE_DATE_RANGE函数,但我需要查询大于1年的大日期范围。现在,我的查询可以处理一年的数据,但我得到的任何信息: 错误:表格\日期\范围错误:天数太多 #Fails SELECT system_id, sample_date, e_pv_array FROM (TABLE_DATE_RANGE(workspace.intervaldata,

我正在尝试使用GoogleBigQuery从带有日期通配符的表中选择数据。我希望能够使用TABLE_DATE_RANGE函数,但我需要查询大于1年的大日期范围。现在,我的查询可以处理一年的数据,但我得到的任何信息:

错误:表格\日期\范围错误:天数太多

#Fails
SELECT 
  system_id, sample_date, e_pv_array
FROM 
  (TABLE_DATE_RANGE(workspace.intervaldata, 
                    TIMESTAMP('2009-03-01'), 
                    TIMESTAMP('2010-03-04')))
WHERE
  system_id = 20006
  and e_pv_array is not null;

这只是bigquery的一个限制吗?或者有没有办法使用日期范围大于1年的表通配符?

我也遇到过表日期范围的问题。 假设您的表名为workspace.intervaldata20090303等,这里有一个可能的解决方法:

SELECT 
system_id, sample_date, e_pv_array
FROM 
TABLE_QUERY(workspace, "integer(regexp_extract(table_id, r'intervaldata([0-9]+)')) BETWEEN 20090301 and 20100304")
WHERE
system_id = 20006
and e_pv_array is not null;
我有一个类似的场景日期分区表,并且能够使用TABLE_QUERY运行超过2年的数据查询,而不会出现错误

SELECT 
system_id, sample_date, e_pv_array
FROM 
TABLE_QUERY(workspace, "integer(regexp_extract(table_id, r'intervaldata([0-9]+)')) BETWEEN 20090301 and 20100304")
WHERE
system_id = 20006
and e_pv_array is not null;