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

如何将TIMESTAMP_TRUNC返回的月份值转为JAN类英文缩写字符串

SQL查询月份转英文缩写修改方案

你当前使用的是BigQuery SQL语法,要输出JAN这类全大写3位英文月份缩写,调整方法如下:

修改核心逻辑

原来的TIMESTAMP_TRUNC(started_at, month) AS month是返回截断到当月第一天的时间戳,替换为时间格式化函数即可:%b是SQL标准的3位月份缩写格式符,外层包UPPER()即可转为全大写格式。

注意:如果started_at字段为DATE类型而非TIMESTAMP类型,将下文的FORMAT_TIMESTAMP替换为FORMAT_DATE即可。


场景1:按「年+月」分组(不同年份的同一月份分开统计,仅显示月份缩写)

如果不需要合并不同年份的同月份数据,保留原有分组逻辑不变,仅调整SELECT部分的输出即可:

SELECT 
    COUNT(distinct ride_id) as total_rides,
    rideable_type,
    member_type,
    TIMESTAMP_TRUNC(started_at, month) AS raw_month, -- 可选,保留原始月份时间戳用于校验
    UPPER(FORMAT_TIMESTAMP('%b', started_at)) AS month_abbr
 FROM `data.table`
 GROUP BY    
    rideable_type,
    member_type,
    raw_month;

场景2:不区分年份,所有年份的同一月份合并统计

直接将月份字段替换为格式化后的缩写,分组同步调整即可:

SELECT 
    COUNT(distinct ride_id) as total_rides,
    rideable_type,
    member_type,
    UPPER(FORMAT_TIMESTAMP('%b', started_at)) AS month_abbr
 FROM `data.table`
 GROUP BY    
    rideable_type,
    member_type,
    month_abbr;

其他数据库适配说明

如果你使用的不是BigQuery,对应格式化函数替换即可:

  • MySQL:替换为UPPER(DATE_FORMAT(started_at, '%b'))
  • PostgreSQL:替换为UPPER(TO_CHAR(started_at, 'MON'))
  • SQL Server:替换为UPPER(FORMAT(started_at, 'MMM'))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:45:03