【发布时间】:2016-12-15 17:53:23
【问题描述】:
我正在尝试在 SQL Developer 中运行 select 语句,该语句将 20160809 之类的字段转换为 date。我的查询看起来像:
select
to_date(sale_date, 'YYYYMMDD') as sale_date
from properties
这是在抛出ORA-01839: date not valid for month specified。我已经尝试了从子字符串到正则表达式的所有方法,试图推断出哪个值导致了错误,但没有骰子。有什么方法可以执行此查询并获取to_date 的输入导致它失败?
【问题讨论】:
-
sale_date列的类型是什么?你那里有任何无效的日期,例如8 月 32 日? -
@TimBiegeleisen:这是一个
varchar2字段。我不确定是否有无效日期。希望看到to_date的输入破坏了它。 -
我会从
select to_date from properties where length(to_date) != 8开始。先排除这些。如果在另一个时代,日期以数字形式保存,后来又转换为字符串,那可能会引入各种错误。
标签: sql oracle plsql oracle11g