Google bigquery 将日期转换为BQ中的yyyymmdd格式(标准)

Google bigquery 将日期转换为BQ中的yyyymmdd格式(标准),google-bigquery,Google Bigquery,平台:BigQuery(标准) 我有一个按天划分的表(table_name_20180101),我正在尝试编写一个查询,以便在任何给定的一天,它只在前7天的表上工作 (例如,今天我想让它运行在:table_name_20180607,table_name_20180608,一直到_20180613) 我试图通过以下语法达到这个结果 FROM `table_name_*` where _table_suffix > (tables up to 7 days ago) 有人对如何获得这一点有

平台:BigQuery(标准)

我有一个按天划分的表(table_name_20180101),我正在尝试编写一个查询,以便在任何给定的一天,它只在前7天的表上工作

(例如,今天我想让它运行在:table_name_20180607,table_name_20180608,一直到_20180613)

我试图通过以下语法达到这个结果

FROM
`table_name_*` where _table_suffix > (tables up to 7 days ago)
有人对如何获得这一点有什么建议吗? 我想试着用YYYYMMDD格式转换当前的_Date(),然后减去7,但我无法得到它


谢谢大家。

您可以使用以下格式的
DATE\u SUB
来实现动态回顾窗口,下面是滚动7天的示例:

FROM `mydata.ga_sessions_20*`
WHERE parse_date('%y%m%d', _table_suffix) between 
DATE_sub(current_date(), interval 7 day) and
DATE_sub(current_date(), interval 1 day)

这是为在BigQuery中的GA导出表上使用而构建的,但您的日期格式似乎相同,因此应该可以使用。

您可以使用以下格式的
date\u SUB
来实现动态回顾窗口,下面是滚动7天的示例:

FROM `mydata.ga_sessions_20*`
WHERE parse_date('%y%m%d', _table_suffix) between 
DATE_sub(current_date(), interval 7 day) and
DATE_sub(current_date(), interval 1 day)

这是为在BigQuery中的GA导出表上使用而构建的,但是您的日期格式似乎是相同的,所以应该可以使用。

对于BigQuery标准SQL

FROM `table_name_*` 
WHERE _table_suffix > FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY))   
如果您需要排除当前日期,您可以使用

FROM `table_name_*` 
WHERE _table_suffix BETWEEN 
  FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY))
  AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))

对于BigQuery标准SQL

FROM `table_name_*` 
WHERE _table_suffix > FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY))   
如果您需要排除当前日期,您可以使用

FROM `table_name_*` 
WHERE _table_suffix BETWEEN 
  FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY))
  AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))