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

在DuckDB中优雅处理日期解析错误:将解析失败值置为NULL

解决方案

核心方法:使用try_strptime函数

DuckDB提供的try_strptime函数专门解决这类脏数据解析问题——它会尝试按指定格式解析字符串,解析失败时自动返回NULL,无需手动编写复杂的CASE判断逻辑,能覆盖所有你预判不到的无效日期场景。

改写后的SQL代码

select * EXCLUDE (date_of_birth),
       try_strptime(date_of_birth, '%Y%m%d')::DATE AS date_of_birth
from read_csv_auto(
    'bad_data.csv', 
    types={'date_of_birth': 'VARCHAR'}
)

补充说明

  • try_strptime和strptime用法完全一致,核心区别在错误处理:strptime遇到无效格式会直接抛出错误终止查询,而try_strptime会静默返回NULL,保证查询能完整执行。
  • 该方法能自动处理所有非法日期情况,包括闰年2月29日的合法性校验、不同月份的天数差异、字符串长度不符、包含非数字字符等各类你手动判断无法覆盖的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 22:17:11