简体   繁体   English

BigQuery:从 SQL 中的日期(字符串类型)中提取月份

[英]BigQuery: Extracting month from date (STRING Type) in SQL

I've connected my GA account to Bigquery.我已将我的 GA 帐户连接到 Bigquery。

Now, I'm trying to group_by month all visits.现在,我正在尝试按月对所有访问进行分组。

But I'm getting:但我得到:

EXTRACT does not support arguments of type: STRING at [2:3] 

Because my date column is of type STRING.因为我的日期列是 STRING 类型。

SELECT
      EXTRACT(DATE_TIME_PART FROM date) AS Month, SUM(totals.visits) as totalVisits, 
    FROM
      `xxxx.yyyy.ga_sessions_20*`
    GROUP BY date

I've tried to CAST it to date:迄今为止,我已经尝试将其 CAST:

SELECT
  EXTRACT(DATE_TIME_PART FROM CAST(date AS date)) AS Month, SUM(totals.visits) as totalVisits, 
FROM
  `xxx-yyyy.ga_sessions_20*`
GROUP BY date 

Getting:获得:

A valid date part name is required but found DATE_TIME_PART at [2:11] Learn More about BigQuery SQL Functions.需要有效的日期部分名称,但在 [2:11] 处找到了 DATE_TIME_PART 了解有关 BigQuery SQL 函数的更多信息。

What does it mean?这是什么意思?

Expected result:预期结果:

| year | month    | total_visits |
|:----:|----------|--------------|
| 2019 |  january | 162626       |
| 2019 | february | 599562       |

UPDATE 1:更新1:

SELECT
 FORMAT_DATE(CAST(date AS date), '%B'), SUM(totals.visits) as totalVisits, 
FROM
  `xxx.yyyy.ga_sessions_20*`
GROUP BY date 

Gives error:给出错误:

No matching signature for function FORMAT_DATE for argument types: DATE, STRING. Supported signature: FORMAT_DATE(STRING, DATE) at [2:2]

Below is for BigQuery Standard SQL下面是 BigQuery 标准 SQL

#standardSQL
SELECT
 FORMAT_DATE('%Y', PARSE_DATE('%Y%m%d', date)) AS year, 
 FORMAT_DATE('%B', PARSE_DATE('%Y%m%d', date)) AS month, 
 SUM(totals.visits) AS totalVisits, 
FROM 
 `xxx.yyyy.ga_sessions_20*`
GROUP BY year, month 

If you want a number, then the correct syntax is:如果你想要一个数字,那么正确的语法是:

SELECT EXTRACT(MONTH FROM CAST(date AS date)) AS Month

If you want the full name, then use FORMAT() :如果您想要全名,请使用FORMAT()

SELECT FORMAT_DATE(CAST(date AS date), '%B')

I would recommend that you include the year as well.我建议您也包括年份。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM