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

如何在BigQuery标准SQL中将YYYY-MM-DD日期转为YYYYMM字符串

在BigQuery标准SQL中将YYYY-MM-DD日期转为YYYYMM字符串的方法

嘿,我懂你的需求啦!你之前用substr(cast(export_date as string), 0,7)得到2020-06,是因为截取的前7个字符刚好包含了年份、中间的横杠和月份,所以才会带分隔符。这里给你几种实用的解决办法:

方法1:使用DATE_FORMAT(最推荐)

BigQuery标准SQL支持DATE_FORMAT函数,可以直接指定输出格式,一步到位:

SELECT DATE_FORMAT(export_date, '%Y%m') AS formatted_date
FROM your_table;
  • %Y代表4位数字的年份,%m代表2位数字的月份(自动补前导零,比如6月会变成06),这样直接就能得到YYYYMM格式的字符串。

方法2:字符串替换法

如果你习惯用字符串处理的方式,可以先截取前7位,再把横杠替换掉:

SELECT REPLACE(SUBSTR(CAST(export_date AS STRING), 1, 7), '-', '') AS formatted_date
FROM your_table;

这里注意BigQuery的SUBSTR索引是从1开始的(不过写0也能正常工作,因为它会自动调整为1),替换掉横杠后就得到了不带分隔符的目标格式。

方法3:提取年份+月份拼接

通过EXTRACT分别取出年份和月份,再拼接成规范格式:

SELECT CONCAT(
    CAST(EXTRACT(YEAR FROM export_date) AS STRING),
    LPAD(CAST(EXTRACT(MONTH FROM export_date) AS STRING), 2, '0')
) AS formatted_date
FROM your_table;
  • LPAD的作用是确保月份是两位数字,比如1月会被补成01,避免出现20201这种不规范的格式。

这三种方法都能满足你的需求,个人最推荐第一种,因为它是专门的日期格式化函数,代码更简洁可读性也更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 17:12:48