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

如何在BigQuery中不硬编码自动获取往年12月31日日期

BigQuery 无硬编码获取历史年末日期方案

核心逻辑

全程基于日期函数动态计算,不需要写死任何年份值,跨年时会自动适配返回对应日期,不会出错。

各日期计算方式

  • 去年12月31日:取当前日期减1年的当年最后一天,公式:LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 1 YEAR), YEAR)
  • 前年12月31日:取当前日期减2年的当年最后一天,公式:LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 2 YEAR), YEAR)
  • 三年前12月31日:取当前日期减3年的当年最后一天,公式:LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 3 YEAR), YEAR)

完整查询示例

SELECT
  -- 去年12月31日
  LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 1 YEAR), YEAR) AS last_year_dec_31,
  -- 前年12月31日
  LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 2 YEAR), YEAR) AS year_before_last_dec_31,
  -- 三年前12月31日
  LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 3 YEAR), YEAR) AS three_years_ago_dec_31

业务场景适配说明

如果需要基于业务表中的日期字段(而非当前日期)计算,直接将公式中的CURRENT_DATE()替换为对应的日期字段即可。如果需要返回时间戳格式,在公式外层包裹TIMESTAMP()函数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:06:11