1、截取字符串substr和检索字符串位置instr的使用
1、截取字符串(substr) substr(string,start_position,length) 求子字符串,返回字符串 注释: string 源字符串 start_position 开始位置(从0开始) length 可选项,子字符串的个数 select substr('ACDE',2) from dual; --返回从第二个字符开始之后的所有字符,返回值:CDE select substr('ABCDEFG',2,4) from dual; --返回从第二个字符开始,后面的4个字符,返回值:BCDE select substr('ABCDEFG',-3) from dual; --参数为负数表示从尾部开始算起,字符串排列位置不变,返回值:EFG select substr('ABCDEFG',-5,2) from dual; --返回值:CD 2、检索字符串位置(instr) instr(string,substr,position,ocurrence) 查找字符串的位置 注释: string : 源字符串 substr : 要查找的子字符串 position : 查找的开始位置 ocurrence : 源字符串中第几次出现的子字符串 select instr('ABC:DEF:HGK',':',1,1) from dual; -- 返回第一个:所在的位置,返回值:4 select instr('ABC:DEF:HGK',':',1,2) from dual; -- 返回第一个:所在的位置,返回值:8 3、substr和instr联合使用 select substr('ABC:DEF:HGK',instr('ABC:DEF:HGK',':',1,1)+1,instr('ABC:DEF:HGK',':',1,2)-instr('ABC:DEF:HGK',':',1,1)-1) from dual; --返回2个冒号之间的值,返回值:DEF
4、replace 字符串替换 select replace(str,str1,str2) from dual; str : 源字符串 str1 : 要替换的字符串 str2 : 替换后的字符串 5、字符串转数字 select to_number('1111') from dual;
6、Oracle时间戳函数获取到秒 SELECT (SYSDATE - TO_DATE('1970-1-1 8', 'YYYY-MM-DD HH24')) * 86400 FROM DUAL; 7、Oracle时间戳函数获取到毫秒 SELECT (SYSDATE - TO_DATE('1970-1-1 8', 'YYYY-MM-DD HH24')) * 86400000 + TO_NUMBER(TO_CHAR(SYSTIMESTAMP(3), 'FF')) AS MILLIONS FROM DUAL;