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

如何在BigQuery中按位置拆分列并提取出生日期年份?

提取BigQuery中YYYYMMDD格式出生日期的年份

没问题,针对你这种以YYYYMMDD格式存储的出生日期列,用SUBSTRING提取年份完全可行,但要注意BigQuery的字符串索引是从1开始的,这和你一开始想的0位起始不一样,这是很容易踩的小坑!

正确的SQL命令(字符串类型列)

假设你的表名为your_table,出生日期列名为birth_date(字符串类型,比如值为19900311),直接用SUBSTRING截取前4位即可:

SELECT
  birth_date,
  SUBSTRING(birth_date, 1, 4) AS birth_year
FROM
  `your_table`;

数字类型列的处理

如果你的birth_date是数字类型(比如INT64),需要先把它转换成字符串再截取:

SELECT
  birth_date,
  SUBSTRING(CAST(birth_date AS STRING), 1, 4) AS birth_year
FROM
  `your_table`;

更简洁的替代方案:LEFT函数

其实用LEFT函数会更直观,直接取字符串的前4个字符,效果和SUBSTRING完全一致:

SELECT
  birth_date,
  LEFT(birth_date, 4) AS birth_year
FROM
  `your_table`;

举个实际例子,当birth_date为19930802时,上面的查询都会返回1993,完美匹配你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:47:08