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

如何在BigQuery中通过公式获取世纪最后一天?

在BigQuery中获取世纪最后一天的公式实现

如果你需要替换直接赋值DATE('2099-12-31')的写法,这里提供两种实用的公式实现方式:

1. 固定获取21世纪最后一天(2099-12-31)

可以通过构造下一个世纪的第一天,再向前推1天来实现:

DATE_SUB(DATE_TRUNC(DATE('2100-01-01'), YEAR), INTERVAL 1 DAY)

或者用年份计算的方式直接生成:

DATE(2100 - 1, 12, 31)

2. 通用获取任意日期所在世纪的最后一天

如果需要根据给定日期动态计算其所在世纪的最后一天,可以用以下公式:

DATE(
  FLOOR((EXTRACT(YEAR FROM your_date_column) + 99) / 100) * 100 - 1,
  12,
  31
)

公式解释:

  • EXTRACT(YEAR FROM your_date_column):提取目标日期的年份
  • (年份 + 99) / 100:计算该年份所属的世纪(比如2023年得到21.22)
  • FLOOR(...) * 100:得到该世纪的起始年份+100(21世纪对应2100)
  • -1:得到世纪的最后一年(2099)
  • DATE(..., 12, 31):构造该年的12月31日,即世纪最后一天

示例:

假设要计算当前日期所在世纪的最后一天:

SELECT DATE(FLOOR((EXTRACT(YEAR FROM CURRENT_DATE()) + 99) / 100) * 100 - 1, 12, 31) AS century_last_day;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 13:42:07