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

使用LOAD DATA INTO导入CSV至BigQuery时DATETIME列类型识别错误

解决BigQuery导入CSV时误将DATETIME识别为TIMESTAMP的问题

核心原因

BigQuery的LOAD DATA INTO默认会尝试自动推断数据类型,即使目标表已有明确结构,仍可能将符合ISO8601格式的日期时间字符串误判为TIMESTAMP,导致与目标表的DATETIME类型冲突。

解决方案

1. 明确指定列类型,覆盖自动推断

在LOAD DATA INTO语句中直接定义完整表结构,强制指定dt_created列为DATETIME类型,避免BigQuery自动推断:

LOAD DATA INTO `your-project.your-dataset.target_table` (
  -- 按实际表结构列出所有列及类型,示例:
  id INT64,
  name STRING,
  dt_created DATETIME,
  status BOOL
)
FROM FILES(
  format = 'CSV',
  uris = ['gs://your-bucket/path/exported-file.csv']
)
OPTIONS(
  skip_leading_rows = 1 -- 如果CSV包含表头行,设置为1;无表头则省略
);

2. 关闭自动类型推断功能

通过OPTIONS参数关闭自动检测,强制BigQuery使用目标表已定义的结构导入数据:

LOAD DATA INTO `your-project.your-dataset.target_table`
FROM FILES(
  format = 'CSV',
  uris = ['gs://your-bucket/path/exported-file.csv']
)
OPTIONS(
  autodetect = FALSE,
  skip_leading_rows = 1 -- 根据CSV是否有表头调整
);

3. 确认目标表结构无误

先执行以下语句验证目标表的dt_created列确实为DATETIME类型,避免因表结构不一致导致的问题:

DESCRIBE TABLE `your-project.your-dataset.target_table`;

内容的提问来源于stack exchange,提问作者apw-ub

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 23:25:07