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

BigQuery中如何将ISO格式日期字符串转换为TIMESTAMP类型

BigQuery中ISO格式日期字符串转TIMESTAMP类型方案

你手上的2022-03-22T00:23:30.000Z是标准UTC时区的ISO 8601时间格式,不需要手动截取子串处理,BigQuery原生支持解析这类格式,下面是两种可直接用的实现方式:

  • 最简方案:直接使用TIMESTAMP()函数隐式转换
    BigQuery的TIMESTAMP类型构造函数默认兼容带Z后缀的ISO 8601字符串,不需要额外指定格式规则,转换结果可以直接和CURRENT_TIMESTAMP()做比较运算:

    -- 单值转换示例
    SELECT TIMESTAMP("2022-03-22T00:23:30.000Z") AS converted_timestamp
    

    表字段使用示例,筛选近30天的数据:

    SELECT *
    FROM `your_project.your_dataset.your_table`
    WHERE TIMESTAMP(your_date_string_column) >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
    
  • 显式解析方案:使用PARSE_TIMESTAMP()匹配完整格式
    之前调用该函数报错是因为格式串没有完全匹配字符串结构,需要对应写全毫秒、时区标识的格式符:

    • %Y-%m-%d 匹配年-月-日段
    • T 匹配日期和时间之间的固定分隔符T
    • %H:%M:%E3S 匹配时:分:秒.三位毫秒的时间段
    • %Ez 匹配末尾代表UTC时区的Z标识
      正确写法示例:
    SELECT PARSE_TIMESTAMP("%Y-%m-%dT%H:%M:%E3S%Ez", "2022-03-22T00:23:30.000Z") AS converted_timestamp
    

注意:手动截取子串移除末尾Z和0的方案不推荐,一旦遇到毫秒数非全0、或者字符串长度有波动的脏数据,很容易出现转换错误,优先用原生支持的解析逻辑稳定性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:57:26