You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用BigQuery SQL统计注册后1天活跃用户时遇类型转换错误求助

问题原因

你写的(r.date, INTERVAL 1 DAY)是在BigQuery里构造了一个STRUCT结构,而a.date是日期/时间戳类型,两者类型不匹配,所以触发了类型转换错误。BigQuery里不能用这种方式做日期加法,得用专门的日期函数。

修正方案

根据你的字段类型选择对应的函数:

  • 如果r.date和a.date是DATE类型,用DATE_ADD函数:
SELECT
    r.gender, 
    COUNT(DISTINCT a.customerid)
FROM register_table r
JOIN activity_table a ON a.customerid = r.customerid
WHERE a.date = DATE_ADD(r.date, INTERVAL 1 DAY)
GROUP BY 1
  • 如果是TIMESTAMP类型,用TIMESTAMP_ADD函数:
SELECT
    r.gender, 
    COUNT(DISTINCT a.customerid)
FROM register_table r
JOIN activity_table a ON a.customerid = r.customerid
WHERE a.date = TIMESTAMP_ADD(r.date, INTERVAL 1 DAY)
GROUP BY 1
  • 如果字段是字符串格式,先转成对应类型再计算,比如:
-- 字符串转DATE后计算
a.date = DATE_ADD(DATE(r.date), INTERVAL 1 DAY)
-- 字符串转TIMESTAMP后计算
a.date = TIMESTAMP_ADD(TIMESTAMP(r.date), INTERVAL 1 DAY)

内容的提问来源于stack exchange,提问作者Dizz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 02:25:21