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

如何在BigQuery中计算日期对应所属季度的第几天

BigQuery 计算日期所属季度第几天的实现方案

核心计算逻辑为:目标日期减去所在季度的第一天,所得天数差加1即为季度内天数(季度首日计为第1天),该逻辑完全匹配你给出的示例预期。

最简原生函数实现

直接使用BigQuery内置日期函数即可完成计算,无需自定义UDF或额外分支判断,所有日期边界(闰年、大小月、季度首尾)会由原生函数自动适配:

-- 通用计算写法,传入DATE类型字段即可
SELECT
  date_col,
  DATE_DIFF(date_col, DATE_TRUNC(date_col, QUARTER), DAY) + 1 AS day_of_quarter
FROM `your_project.your_dataset.your_table`

示例校验

针对输入11-Feb-2022的计算过程如下:

  • 用DATE_TRUNC将日期截断到所属季度起始:DATE_TRUNC(DATE '2022-02-11', QUARTER) 返回 2022-01-01(2022年Q1的第一天)
  • 计算两个日期的天数差:DATE_DIFF(DATE '2022-02-11', DATE '2022-01-01', DAY) 返回41
  • 差值加1(因为季度首日要算第1天),最终得到结果42,和预期输出完全一致

特殊场景适配

如果你的日期字段是字符串格式(比如示例中的11-Feb-2022是日-月缩写-年格式),需要先转成DATE类型再计算,转换写法如下:

-- 先解析字符串为DATE类型再计算
WITH sample AS (
  SELECT PARSE_DATE('%d-%b-%Y', '11-Feb-2022') AS input_date
)
SELECT
  input_date,
  DATE_DIFF(input_date, DATE_TRUNC(input_date, QUARTER), DAY) + 1 AS day_of_quarter
FROM sample

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 20:18:25