如何解决ORA-01821: date format not recognized日期格式不识别错误
报错根因
你触发ORA-01821: date format not recognized报错的核心原因是日期格式掩码中使用了Oracle不识别的SI标记,Oracle中表示秒的标准格式符为SS,不存在SI这个格式定义,因此无论使用to_date还是to_timestamp函数,都会因为无法解析格式掩码抛出错误。
修复后的查询语句
SELECT to_char(to_timestamp('27-08-2021 06:24:00', 'DD-MM-YYYY HH24:MI:SS'), 'DD-MM-YYYY HH24:MI:SS') FROM LOG_TABLE;
额外注意事项
- 如果需要处理带毫秒的时间场景,可使用
FF格式符,例如'DD-MM-YYYY HH24:MI:SS.FF3'对应3位毫秒精度 - 如果你实际业务中是读取
LOG_TABLE中存储的时间字段而非写死的字符串:- 若字段为字符串类型,需保证字段内所有时间值的格式和掩码完全对齐,否则仍会触发格式解析错误
- 若字段本身就是
DATE/TIMESTAMP类型,无需额外套to_timestamp转换,直接调用to_char格式化即可
内容的提问来源于stack exchange,提问作者Nvr
相关产品推荐
相关产品推荐

