任何string型的数据都可以转换为Date:-)
select to_date('01-01-2003','DD-MM-YYYY') from dual
select to_date('2003/01/01','YYYY/MM/DD') from dual
select to_date('2003-Jan','YYYY-MON') from dual
....
关键在于你的format 设置. BTW , 缺省的格式在select * from nls_session_parameters 

解决方案 »

  1.   

    用例外事件来获取返回值,“1”成功,“2”失败
    create or replace function get(p_date in varchar2)
    return varchar2
    as
    a date; 
    begin
    a:=to_date(p_date,'yyyy-mm-dd');
    return(1);
    exception
      when others then
      return(0);
    end;
    /  
      

  2.   

    楼上的写法可以,但可能比较局限。按照楼主的意思,应该将所有的日期掩码全都罗列全了,在次情况下还是转换不了的,才说明此string是不能转换的,否则,只要string符合一种日期掩码,就可以转换。(至少我是这么理解楼主的意思的)
      

  3.   

    你的Oracle里设置的日期格式是什么,然后按照这个格式编写一个函数,用(beckhambobo(beckham) )的方法。在Oracle里面不可能有很多的日期格式!