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

如何在BigQuery中从分区时间获取月份名及从current_date()提取月份数字

BigQuery 月份提取操作解决方案

你之前使用MONTH(current_date())得到月份名称,是因为当前SQL运行在Legacy SQL模式下,BigQuery标准SQL模式中MONTH()默认返回1-12的月份数字。

1. 从分区时间中获取月份名称

使用标准SQL的FORMAT_DATE函数即可自定义返回月份名称格式:

  • 全拼月份名称(如January、十月):
    SELECT FORMAT_DATE("%B", DATE(_PARTITIONTIME)) AS full_month_name
    FROM `你的项目.你的数据集.你的表名`
    
  • 缩写月份名称(如Jan、10月):
    SELECT FORMAT_DATE("%b", DATE(_PARTITIONTIME)) AS short_month_name
    FROM `你的项目.你的数据集.你的表名`
    

如果是自定义的时间分区字段,替换DATE(_PARTITIONTIME)为对应的日期/时间字段即可。

2. 从current_date()中提取月份数字

两种通用方案,覆盖标准SQL和Legacy SQL场景:

  • 标准SQL方案(推荐,BigQuery当前默认模式):
    可以直接用EXTRACT函数或者原生MONTH函数:
    -- 写法1:EXTRACT函数,可读性更高
    SELECT EXTRACT(MONTH FROM CURRENT_DATE()) AS month_number
    
    -- 写法2:直接调用MONTH函数
    SELECT MONTH(CURRENT_DATE()) AS month_number
    
    两种写法都会返回1-12范围内的整数月份值。
  • Legacy SQL兼容方案:
    如果必须使用Legacy SQL模式,调用MONTH_IN_YEAR函数获取数字月份:
    SELECT MONTH_IN_YEAR(CURRENT_DATE()) AS month_number
    

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

相关产品推荐
方舟 Agent Plan

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

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