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

如何在Google Big Query中查询两个特定日期的对应数据

Big Query筛选两日数据(昨日+去年同日)的WHERE条件写法

核心逻辑是用IN运算符匹配两个指定的目标日期即可,根据你表中时间字段的类型,对应写法如下:

  • 字段为DATE类型(常用分区字段类型)
    固定日期查询(以你举例的2021-10-25、2020-10-25为例):
    WHERE 你的日期字段名 IN ('2021-10-25', '2020-10-25')
    
    动态自动匹配(无需每次手动修改日期,自动取当前的昨日和去年同日):
    WHERE 你的日期字段名 IN (
      DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY), -- 计算昨日日期
      DATE_SUB(CURRENT_DATE(), INTERVAL 1 YEAR) -- 计算去年同日日期
    )
    
  • 字段为DATETIME/TIMESTAMP类型
    需先将字段转为DATE类型,避免时分秒导致匹配失败:
    WHERE DATE(你的时间字段名) IN (
      DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY),
      DATE_SUB(CURRENT_DATE(), INTERVAL 1 YEAR)
    )
    

优化提示:如果你的表是按日期分区的大表,建议先声明目标日期常量再匹配,可以避免函数运算导致无法触发分区裁剪,降低查询成本:

-- 先声明两个目标日期常量
DECLARE yesterday DATE DEFAULT DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY);
DECLARE same_day_last_year DATE DEFAULT DATE_SUB(CURRENT_DATE(), INTERVAL 1 YEAR);

-- 查询时直接匹配常量
SELECT * FROM 你的表名
WHERE 你的日期字段名 IN (yesterday, same_day_last_year)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:06:03