Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google bigquery 格式化表\u DATE\u RANGE()BigQuery的时间戳输出_Google Bigquery - Fatal编程技术网

Google bigquery 格式化表\u DATE\u RANGE()BigQuery的时间戳输出

Google bigquery 格式化表\u DATE\u RANGE()BigQuery的时间戳输出,google-bigquery,Google Bigquery,我需要一次查询不同的表以节省时间。表名如下 abc_yyyymmdd 可以使用 table_date_range(abc_,timestamp('2016-01-01'),timestamp('2016-03-12')) 但我有不同格式的表名 abc_mm_dd_yyyy 是否有一种方法可以使用table\u date\u range在这些表中进行查询。如果可以使用标准SQL,则可以使用\u table\u SUFFIX伪列处理任何表名格式 在这种情况下,它将类似于: SELECT ...

我需要一次查询不同的表以节省时间。表名如下

abc_yyyymmdd

可以使用

table_date_range(abc_,timestamp('2016-01-01'),timestamp('2016-03-12'))
但我有不同格式的表名

abc_mm_dd_yyyy


是否有一种方法可以使用table\u date\u range在这些表中进行查询。

如果可以使用标准SQL,则可以使用\u table\u SUFFIX伪列处理任何表名格式

在这种情况下,它将类似于:

SELECT ... FROM `mydataset.abc_2016_*` WHERE _TABLE_SUFFIX = '01-01' or _TABLE_SUFFIX = '03-12'

如果可以使用标准SQL,则可以使用_TABLE_SUFFIX伪列处理任何表名格式

在这种情况下,它将类似于:

SELECT ... FROM `mydataset.abc_2016_*` WHERE _TABLE_SUFFIX = '01-01' or _TABLE_SUFFIX = '03-12'

在旧式SQL中,您可以使用表\u查询来实现此目的

所以它可以是下面的样子

SELECT *  
FROM (
  TABLE_QUERY(YourDataset, 'LEFT(table_id, 4) = "abc_" AND LENGTH(table_id) = 14
  AND CONCAT(SUBSTR(table_id,11,4),'-',SUBSTR(table_id,5,2), -",SUBSTR(table_id,8,2)) 
    BETWEEN "2016-01-01" AND "2016-03-12"')
)  

在旧式SQL中,您可以使用表\u查询来实现此目的

所以它可以是下面的样子

SELECT *  
FROM (
  TABLE_QUERY(YourDataset, 'LEFT(table_id, 4) = "abc_" AND LENGTH(table_id) = 14
  AND CONCAT(SUBSTR(table_id,11,4),'-',SUBSTR(table_id,5,2), -",SUBSTR(table_id,8,2)) 
    BETWEEN "2016-01-01" AND "2016-03-12"')
)