当我运行时:
select to_date('substr(21120319,3)','YYMMDD')
from dual
我收到错误:
日期不在有效范围 -4719 和 +9999 内。
但如果这样做:
select to_date('120319','YYMMDD')
from dual
我的查询运行良好,并给出了 19-MAR-12 的输出。
这个错误的原因是什么。请帮助我理解这一点。
谢谢你的时间。
您必须从字符串文字中删除 substr 。
select to_date(substr('21120319', 3),'YYMMDD')
from dual ;
select to_date('substr(21120319,3)','YYMMDD') from dual ;
现在substr(21120319,3)
也是字符串的一部分
将其更改为
select to_date(substr('21120319',3),'YYMMDD') from dual ;
你可能需要
select to_date('21120319','YYYYMMDD')
from dual
不需要 substr,它会返回错误的世纪,21120319 应该返回 2112 年 3 月 19 日而不是 2012 年 3 月 19 日。