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

如何在Google BigQuery中将现有列日期转换为当月第一天

在Google BigQuery中将日期转换为当月第一天的方法

嘿,这个需求在BigQuery里有几种简单直接的实现方式,我分两种常见场景给你说明:

情况1:字段是DATE类型

如果你的日期字段本身就是BigQuery的DATE类型,用DATE_TRUNC()函数就能快速搞定——它可以把日期截断到指定的时间单位(这里选MONTH),直接返回当月第一天的DATE值。要是需要按照MM/DD/YYYY的格式显示,再搭配FORMAT_DATE()函数就行。

示例查询:

SELECT
  your_date_column AS original_date,
  -- 获取当月第一天的DATE类型值
  DATE_TRUNC(your_date_column, MONTH) AS first_day_of_month,
  -- 格式化为MM/DD/YYYY格式的字符串
  FORMAT_DATE("%m/%d/%Y", DATE_TRUNC(your_date_column, MONTH)) AS first_day_formatted
FROM
  `your_project.your_dataset.your_table`

比如原日期是2018-12-16,运行后first_day_formatted会返回12/01/2018。

情况2:字段是STRING类型(如'12/16/2018')

如果日期是以字符串形式存储的,需要先把它转成DATE类型,再进行截断和格式化:

  1. 用PARSE_DATE()匹配原字符串的格式,将其转为DATE类型
  2. 用DATE_TRUNC()截断到当月第一天
  3. 最后用FORMAT_DATE()输出目标格式

示例查询:

SELECT
  your_string_date AS original_date_str,
  FORMAT_DATE(
    "%m/%d/%Y",
    DATE_TRUNC(
      PARSE_DATE("%m/%d/%Y", your_string_date),
      MONTH
    )
  ) AS first_day_formatted
FROM
  `your_project.your_dataset.your_table`

小提示

  • 如果原字符串的日期格式不是MM/DD/YYYY(比如YYYY-MM-DD),只需要调整PARSE_DATE()里的格式符即可,比如改成PARSE_DATE("%Y-%m-%d", your_string_date)。
  • 要是不需要格式化字符串,直接用DATE_TRUNC()返回的DATE类型结果就足够了,后续还能方便做其他日期运算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:19:11