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

Big Query上传CSV自动识别日期:如何区分日与月?

Big Query CSV日期自动检测相关问题解答

问题1:对于02-03-1999这类模糊日期,Big Query如何判定02是日而非月?

当遇到日和月数值都在1-12范围内的模糊日期时,Big Query会结合样本数据中的其他日期记录来判断:

  • 如果样本里存在30-05-1999这类日期(30不可能作为月份),系统会直接确定格式为DD-MM-YYYY,因此02-03-1999会被解析为1999年3月2日。
  • 如果所有日期的日和月都在1-12之间,系统会默认采用DD-MM-YYYY的解析规则,将前两位判定为日。

问题2:若CSV日期格式为MM-DD-YYYY(如02-03-1999代表1999年2月3日),Big Query能否正确识别并转为YYYY-MM-DD格式?

不一定,分两种情况:

  • 如果样本数据中存在13-05-2000这类日期(13作为月份无效),系统会因无法匹配DD-MM-YYYY格式,转而尝试其他格式,但大概率会将该列识别为STRING类型,而非DATE类型。
  • 如果所有日期的月和日都在1-12之间,系统会默认按DD-MM-YYYY解析,导致02-03-1999被错误识别为1999年3月2日。

这种场景下不建议依赖自动检测,最好手动指定字段类型为DATE,并明确设置日期解析格式为%m-%d-%Y。

问题3:Big Query区分日和月的底层判定逻辑是什么?

核心逻辑是样本扫描+格式有效性验证:

  • 首先抽取CSV中的部分样本数据(默认是数据集的前若干行或一定比例的记录)。
  • 尝试匹配常见日期格式,优先验证格式的有效性:比如某格式下是否存在无效日期(如31-04-2020,4月没有31天,就会排除DD-MM-YYYY的可能)。
  • 结合默认区域设置:系统默认优先采用非美式日期格式(DD-MM-YYYY),但如果样本中大量符合美式格式(MM-DD-YYYY)的有效日期且无冲突,也会切换为对应格式。
  • 若所有候选格式都无冲突(即所有日期的日和月都在1-12之间),则默认采用DD-MM-YYYY解析;若无法确定唯一格式,会将字段识别为STRING类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 02:33:15