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

BigQuery日期相减转INT报错,如何获取距离上次登录的间隔天数

报错原因

BigQuery中两个DATE类型的值直接相减,返回结果为INTERVAL间隔类型,不属于数值类型范畴,因此无法直接强制转换为INT64,就会触发你遇到的invalid cast from INTERVAL to INT64报错。

正确实现方案

直接使用BigQuery内置的DATE_DIFF函数计算日期间隔,该函数会直接返回整数类型的间隔值,无需额外类型转换,语法如下:

SELECT 
    short_name,
    DATE_DIFF(CURRENT_DATE(), last_log_in, DAY) AS days_wo_log_in
FROM `noted-wares-328320.demo.test_date`;

补充说明

  • DATE_DIFF的参数规则为DATE_DIFF(晚日期, 早日期, 时间单位),第三个参数传DAY即返回两个日期相差的整数天数,结果类型默认为INT64
  • 如果要兼容last_log_in为空的场景,可以搭配IFNULL设置默认值,示例:
SELECT 
    short_name,
    IFNULL(DATE_DIFF(CURRENT_DATE(), last_log_in, DAY), 0) AS days_wo_log_in
FROM `noted-wares-328320.demo.test_date`;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:27:02