SQLXXXXX=XX

来源:互联网 发布:淘宝义卖作文 编辑:程序博客网 时间:2024/05/16 01:19
create or replace  function  FN_DATESTR(v_datestr in VARCHAR2) return VARCHAR2 is  results VARCHAR2(40); --正确格式的结果数据le number(20);        --数据长度timeObj VARCHAR2(40); --用于保存拆分含有的时间timeObj2 VARCHAR2(40);--用于临时保存保存拆分的日期BEGIN  le :=length(v_datestr);  if (v_datestr is null OR  nvl(trim(v_datestr),'-1')='-1') then      return null;  end if;  --只有日期,补上时间  if(8<=le and le<=11) then    results :=v_datestr||' 00:00:01';    results :=REGEXP_replace(results,'[年|月|日]','-');    return to_char(to_date(results,'yyyy-MM-dd HH24:mi:ss'),'yyyy-MM-dd HH24:mi:ss');  end if;  --含有日期、时间  if(11<le) then    --获取时间    timeObj :=substr(v_datestr,8);    timeObj2 :=substr(v_datestr,8);--临时保存数据,用于还原数据    --去掉时间中含有的字符串T    if(instr(timeObj,'T')>0) then      timeObj:=replace(timeObj,'T',' ');    end if;    --去掉时间中的毫秒    if(instr(timeObj,'.')>0)then      timeObj:=substr(timeObj,0,instr(timeObj,'.')-1);    end if;    results :=replace(v_datestr,timeObj2,timeObj);    results :=REGEXP_replace(results,'[年|月|日]','-');    return to_char(to_date(results,'yyyy-MM-dd HH24:mi:ss'),'yyyy-MM-dd HH24:mi:ss');  end if;return null;  end; 
原创粉丝点击