数据洞察中自定义查询中的无效日期错误

deu*_*ine 4 google-bigquery google-data-studio

我正在尝试在 Data Studio 中使用自定义查询 (BigQuery) 准备图表。但是,在使用 Data Studio 日期参数@DS_START_DATE@DS_END_DATE. 这是我的查询

SELECT cat_tbl.*,tag.Category_name 
FROM 
   (SELECT 
     (SELECT category FROM UNNEST(ana_cat) ORDER BY score DESC LIMIT 1) AS category,
     * 
   FROM `projectId.dataset.table1`) AS cat_tbl  
   RIGHT JOIN `projectId.dataset.table2` AS tag 
     ON cat_tbl.category=tag.Category_id
WHERE DATE(cat_tbl.date) BETWEEN @DS_START_DATE AND @DS_END_DATE
Run Code Online (Sandbox Code Playgroud)

cat_tbl.dateDATETIME场。当我运行它时,我收到以下错误

Invalid date: '20191014'

Error ID: 853185df
Run Code Online (Sandbox Code Playgroud)

我是 BigQuery 和 Data Studio 的新手。任何建议都会非常有帮助。

Ell*_*ard 8

如果您查看Data Studio 博客文章中的示例,这些查询参数实际上并不是日期(有些令人困惑),而是格式为 的字符串YYYYMMDD。因此,您需要将它们解析为查询中的日期:

SELECT cat_tbl.*,tag.Category_name 
FROM 
   (SELECT 
     (SELECT category FROM UNNEST(ana_cat) ORDER BY score DESC LIMIT 1) AS category,
     * 
   FROM `projectId.dataset.table1`) AS cat_tbl  
   RIGHT JOIN `projectId.dataset.table2` AS tag 
     ON cat_tbl.category=tag.Category_id
WHERE DATE(cat_tbl.date)
    BETWEEN PARSE_DATE('%Y%m%d', @DS_START_DATE) AND
    PARSE_DATE('%Y%m%d', @DS_END_DATE)
Run Code Online (Sandbox Code Playgroud)