首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >格式化TABLE_DATE_RANGE() BigQuery的时间戳输出

格式化TABLE_DATE_RANGE() BigQuery的时间戳输出
EN

Stack Overflow用户
提问于 2016-06-17 14:02:11
回答 2查看 161关注 0票数 0

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

abc_yyyymmdd

可以很容易地使用

代码语言:javascript
运行
复制
table_date_range(abc_,timestamp('2016-01-01'),timestamp('2016-03-12'))

但是我有不同的格式表名

abc_mm_dd_yyyy

是否有一种使用table_date_range在这些表中查询的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-17 15:24:44

在Legacy SQL中,您可以为此使用TABLE_QUERY。

所以它可以像下面这样

代码语言:javascript
运行
复制
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"')
)  
票数 1
EN

Stack Overflow用户

发布于 2016-06-17 14:16:41

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

Is there an equivalent of table wildcard functions in BigQuery with standard SQL?

在这种情况下,应该是这样的:

代码语言:javascript
运行
复制
SELECT ... FROM `mydataset.abc_2016_*` WHERE _TABLE_SUFFIX = '01-01' or _TABLE_SUFFIX = '03-12'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37883604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档