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