解决方案 »

  1.   

    CONCAT(column1|expression1,column2|expression2):相当于||
    SUBSTR(column|expression,m[,n]):返回字符串字符,从第m个字符开始,长度为n个字符;m为负数,则从末尾开始,省略n,则返回一直到末尾的所有字符INSTR(column|expression,'string',[,m],[n]):返回指定字符串的数字位置。m:开始搜索的位置;n:字符串出现次数;m和n默认为1INITCAP:将每个单词第一个字母转换为大写,其余字母保留小写LPAD(column|expression, n, 'string'):将字符值按右对齐排列,然后左侧填充字符,以使总字符宽度为nRPAD(column|expression, n, 'string'):将字符值按左对齐排列,然后右侧填充字符,以使总字符宽度为nTRIM(leading|trailing|both, trim_character FROM trim_source):从字符串trim_source截取头部,尾部或者两头的字符trim_character特殊用法:SELECT LOWER(TRIM('H' FROM 'HelloWorld')) FROM dual;ROUND(column|expression,n):将列,表达式或者值进行四舍五入,保留n个小数位;n为负数,将四舍五入小数点左边;n默认为0TRUNC(column|expression,n):将列,表达式或者值进行截取,保留n个小数位;n为负数,将截取小数点左边;n默认为0
      

  2.   

    declare 
    fee_date varchar2(1000):='filelist_pmd_mm_dd.20110913.013617.csv';
    fee_date_p varchar2(100);
    int_date NUMBER(10);
    begin
    fee_date_p:=substr(fee_date,-1,19);
    int_date:=length(fee_date_p);
    dbms_output.put_line(fee_date_p);end;
    取出来只有一个值v  我想从右边去19位 再从19位的第一位去八位 转换为日期 想要这样的结果:2011-09-13 00:00:00.0000000
      

  3.   

    declare 
    fee_date varchar2(1000):='filelist_pmd_mm_dd.20110913.013617.csv';
    fee_date_p varchar2(100);
    int_date NUMBER(10);
    begin
    fee_date_p:=substr(fee_date,-1,19);
    int_date:=length(fee_date_p);
    dbms_output.put_line(fee_date_p);end;
    取出来只有一个值v  我想从右边去19位 再从19位的第一位去八位 转换为日期 想要这样的结果:2011-09-13 00:00:00.0000000
      

  4.   

    请参考select substr ('abcdefg-20110913.013617.csv',length('abcdefg-20110913.013617.csv')-18,8)||' 00:00:00.0000000' from dual