【问题标题】:How to run BigQuery for Selection of last month Records?如何运行 BigQuery 以选择上个月的记录?
【发布时间】:2021-07-19 13:05:19
【问题描述】:

我正在尝试从 BigQuery 表中获取上个月的记录。我发现我的专栏是时间戳格式,这就是它给出错误的原因。 参数类型的运算符 BETWEEN 没有匹配的签名:TIMESTAMP、DATE、DATE。支持的签名:(ANY) BETWEEN (ANY) AND (ANY) at [4:21]

表结构

查询

SELECT user_mobile,count(*) as total_customer FROM `Project.Dataset.Table` cr
where cr.DATE BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH) AND CURRENT_DATE()
group by user_mobile
having count(*) >=1;

请指导我如何在查询中使用时间戳来获得所需的结果。谢谢。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    改用CURRENT_TIMESTAMP()TIMESTAMP_SUB()

    SELECT user_mobile,count(*) as total_customer 
    FROM `Project.Dataset.Table` cr
    where cr.created_at BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY) AND CURRENT_TIMESTAMP()
    group by user_mobile
    having count(*) >=1;
    

    或使用DATE(cr.created_at)created_at 转换为日期

    【讨论】:

    • 谢尔盖感谢您的帮助。不幸的是,它不起作用并再次出现此错误。对于参数类型的运算符 BETWEEN 没有匹配的签名:TIMESTAMP、TIMESTAMP、DATE。支持的签名:(ANY) BETWEEN (ANY) AND (ANY) at [5:21]
    • 有一个错字。请重新复制粘贴。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 2021-11-20
    • 2011-07-11
    • 1970-01-01
    • 2011-09-15
    • 2014-11-19
    相关资源
    最近更新 更多