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

BigQuery中如何将DATETIME类型日期格式化为月日短字符串

BigQuery 周字段格式化实现方案

直接使用BigQuery内置日期格式化函数即可实现需求,核心逻辑如下:

  • 用FORMAT_DATE函数做字符串格式化,对应格式串"%b %d"即可输出「三位月份缩写+两位日期」的结果:
    • %b:返回对应日期的三位英文月份缩写,例如2月对应Feb、3月对应Mar
    • %d:返回补零的两位日期数值,例如2号对应02、22号对应22
  • 由于DATE_TRUNC作用在DATETIME/TIMESTAMP类型字段时返回值不是DATE类型,需要套一层DATE()做类型转换,避免函数入参类型报错
  • BigQuery支持SELECT中定义的列别名直接在GROUP BY中引用,可以简化重复书写的截断逻辑

修改后可直接运行的SQL如下:

SELECT 
  FORMAT_DATE("%b %d", DATE(DATE_TRUNC(dd.created, WEEK))) AS week,
  COUNT(DISTINCT dd.user) AS total,
  COUNT(dd.upload) AS info
FROM
  local.detail dd
  LEFT JOIN local.list du ON dd.id = du.id
WHERE
  REGEXP_EXTRACT(du.email, r'@(.+)') != 'gmail.com'
GROUP BY
  week;

额外提示:当前SQL在WHERE子句中过滤右表du的email字段,会让LEFT JOIN实际退化为INNER JOIN,如果需要保留local.detail中无匹配local.list记录的数据,需要把该过滤条件移动到LEFT JOIN的ON子句中。

内容的提问来源于stack exchange,提问作者Sädnän Møhøsïn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:03:23