1

当我运行时:

select to_date('substr(21120319,3)','YYMMDD') 
from dual 

我收到错误:

日期不在有效范围 -4719 和 +9999 内。

但如果这样做:

select to_date('120319','YYMMDD') 
from dual

我的查询运行良好,并给出了 19-MAR-12 的输出。

这个错误的原因是什么。请帮助我理解这一点。

谢谢你的时间。

4

3 回答 3

4

您必须从字符串文字中删除 substr 。

select to_date(substr('21120319', 3),'YYMMDD') 
from dual ;
于 2013-03-19T14:27:57.780 回答
0
select to_date('substr(21120319,3)','YYMMDD')  from dual ;

现在substr(21120319,3)也是字符串的一部分

将其更改为

  select to_date(substr('21120319',3),'YYMMDD')  from dual ;
于 2013-03-19T14:29:18.543 回答
0

你可能需要

select to_date('21120319','YYYYMMDD') 
from dual 

不需要 substr,它会返回错误的世纪,21120319 应该返回 2112 年 3 月 19 日而不是 2012 年 3 月 19 日。

于 2013-03-19T14:30:39.570 回答