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

BigQuery中将无前置零带时区STRING转换为TIMESTAMP方法问询

在BigQuery中将带时区的非标准字符串日期转换为TIMESTAMP类型列

当然可以转换,核心是使用BigQuery的PARSE_TIMESTAMP函数,并指定匹配你字符串格式的模板。你遇到的问题主要是时区部分的格式匹配错误,以及月份/日期无前置零的兼容问题,以下是具体解决方案:

转换SQL示例

假设你的字符串日期列名为raw_date,目标表为your_table,可以用以下语句生成TIMESTAMP类型列:

SELECT
  raw_date,
  PARSE_TIMESTAMP("%Y/%m/%d %H:%M:%S GMT%z", raw_date) AS converted_timestamp
FROM
  your_table;

格式模板说明

  • %Y:匹配4位年份(如2024)
  • %m:自动兼容带前置零(12)和不带前置零(2)的月份
  • %d:自动兼容带前置零(10)和不带前置零(9)的日期
  • %H:%M:%S:匹配时分秒部分
  • GMT%z:匹配时区偏移(如GMT+07:00),其中%z专门用于识别±HH:MM格式的时区偏移量

验证测试

你可以先用测试数据验证转换效果:

WITH sample_data AS (
  SELECT "2024/2/9 23:52:05 GMT+07:00" AS raw_date UNION ALL
  SELECT "2024/12/10 20:51:05 GMT+07:00" AS raw_date
)
SELECT
  raw_date,
  PARSE_TIMESTAMP("%Y/%m/%d %H:%M:%S GMT%z", raw_date) AS converted_timestamp
FROM sample_data;

执行后会输出对应的TIMESTAMP值,两种格式的字符串都能被正确解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 02:30:14