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

在Google BigQuery中将CSV字符串日期转换为mm/dd/yyyy格式报错求助

Google BigQuery 自定义格式日期转换解决方案

你遇到的报错核心原因是BigQuery默认的日期/时间解析函数无法自动识别MM/DD/YYYY hh:mm AM/PM这种带12小时制+AM/PM标记的美国格式日期字符串,需要手动指定格式字符串匹配原数据结构。

操作方法

1. 导入阶段规避预校验报错

通过BigQuery UI或API导入CSV时,先将该日期字段的类型设置为STRING类型完成导入,不要提前设置为DATE/DATETIME类型,避免导入阶段直接触发格式校验报错。

2. 调用内置函数完成格式转换

导入完成后使用PARSE_DATETIME函数手动指定匹配格式进行转换,示例SQL如下:

SELECT
  -- 先将字符串转为标准DATETIME类型
  PARSE_DATETIME('%m/%d/%Y %I:%M %p', 你的日期字段名称) AS standard_datetime,
  -- 按需求转为mm/dd/yyyy格式的字符串
  FORMAT_DATE('%m/%d/%Y', DATE(PARSE_DATETIME('%m/%d/%Y %I:%M %p', 你的日期字段名称))) AS target_date_str
FROM 你的表名称

格式符对应说明:

  • %m:匹配两位数月份
  • %d:匹配两位数日期
  • %Y:匹配四位数年份
  • %I:匹配12小时制的小时数值(不能使用24小时制的%H,否则会报错)
  • %M:匹配两位数分钟数值
  • %p:匹配AM/PM标识,大小写不敏感

3. 脏数据兼容优化

如果数据中存在部分格式异常的脏数据,可以给函数加上SAFE.前缀,异常行转换结果返回NULL,不会导致整条SQL执行失败:

SELECT
  SAFE.PARSE_DATETIME('%m/%d/%Y %I:%M %p', 你的日期字段名称) AS standard_datetime
FROM 你的表名称

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:15:02