Google BigQuery:从日期字段(“yyyy-mm-dd”)或时间戳

时间:2016-06-27 23:40:36

标签: date google-bigquery

我想从日期字段(“yyyy-mm-dd”)或时间戳字段中按“yyyy-mm”进行分组,以便我可以在多年内对事务数据进行分组和分组,而无需提取单独的查询分组每年一个月。

2 个答案:

答案 0 :(得分:4)

SELECT 
  CONCAT(STRING(YEAR(timestamp)),'-',RIGHT(STRING(100 + MONTH(timestamp)), 2)) AS yyyymm,
  <any aggregations here>
FROM YourTable
GROUP BY 1

另一种选择:

SELECT 
  STRFTIME_UTC_USEC(timestamp, "%Y-%m") AS yyyymm,
  <any aggregations here>
FROM YourTable
GROUP BY 1

两个版本都应该使用时间戳或日期

答案 1 :(得分:0)

您可以对标准SQL使用以下内容:

SELECT concat(cast(format_date("%E4Y", cast(current_date() as date)) as string),'-',cast(format_date("%m", cast(current_date() as date)) as string)) as yyyymm, <other aggregations>
FROM <YourTable>
GROUP BY 1;

只需将current_date()替换为包含时间戳的列名即可。