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

BigQuery排除当前月度数据求助:代码误删历史同月份数据

解决仅排除当前月度数据的问题

你的代码逻辑错误导致所有同月份的数据被排除。当前代码用 AND 连接两个条件,这意味着只有同时满足「年份不等于当前年份」并且「月份不等于当前月份」的数据才会被保留——换句话说,只要月份等于当前月份(不管年份是否相同),数据就会被排除。

要只排除当前年份的当前月份数据,你需要修改条件逻辑:保留所有不满足「年份等于当前年份且月份等于当前月份」的数据。可以通过两种方式实现:

方式一:用 NOT 包裹复合条件

SELECT * FROM TaBLE WHERE
  NOT (EXTRACT(YEAR FROM CalendarMonth) = EXTRACT(YEAR FROM CURRENT_DATE()) AND
       EXTRACT(MONTH FROM CalendarMonth) = EXTRACT(MONTH FROM CURRENT_DATE()))

方式二:利用德摩根定律改写为 OR 连接的条件

SELECT * FROM TaBLE WHERE
  EXTRACT(YEAR FROM CalendarMonth) != EXTRACT(YEAR FROM CURRENT_DATE()) OR
  EXTRACT(MONTH FROM CalendarMonth) != EXTRACT(MONTH FROM CURRENT_DATE())

这两种写法效果完全一致,都会只排除当前年份的当前月份数据,保留其他所有年份的同月份数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 07:31:05