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

将同表VARCHAR2类型YYYYMMDD格式字段转DATE类型失败如何解决

问题根因
  • 核心错误为to_date函数的转换格式掩码与待转换字符串格式不匹配:待转换的DATEOLD字段存储的是无分隔符的YYYYMMDD格式字符串(示例值20210728),而语句中指定的格式为带斜杠分隔的MM/DD/YYYY,二者结构完全不一致,导致转换失败。
  • 若DATEOLD字段存在长度不为8、包含非数字字符、日期逻辑非法(比如20210230)的脏数据,也会触发转换报错。
解决方案

标准转换语句

如果确认DATEOLD字段所有值都符合YYYYMMDD格式规则,直接修改格式掩码即可:

UPDATE SUPPORT 
SET DATENEW = to_date(DATEOLD, 'YYYYMMDD');

带脏数据兼容的转换语句

如果使用Oracle 12c及以上版本,可以添加转换容错参数,避免脏数据导致整批更新失败:

UPDATE SUPPORT 
SET DATENEW = to_date(DATEOLD DEFAULT NULL ON CONVERSION ERROR, 'YYYYMMDD');

执行完成后,可以通过SELECT * FROM SUPPORT WHERE DATENEW IS NULL筛选出格式异常的脏数据,单独处理即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 20:18:00