Oracle常用函数
1.字符函数:
| 函数 | 说明 | 
| ASCII(X) | 返回字符X的ASCII码 | 
| concat(X,Y) | 连接字符串X和Y | 
| instr(X,str[,start][,N) | 从X中查找str,可以指定从start开始,也可以指定从n开始 | 
| length(X) | 返回X的长度 | 
| loewer(X) | X转换成小写 | 
| upper(X) | X转换成大写 | 
| ltrim(X[,trim_str]) | 把X的左边截去trim_str字符串,缺省截去空格 | 
| rtrim(X[,trim_str]) | 把X的右边截去trim_str字符串,缺省截去空格 | 
| trim([trim_str from]X) | 把X的两边截去trim_str字符串,缺省截去空格 | 
| initcap(X) | 首字母大写 | 
| replace(X) | 进行替换 | 
| substr(开始截取位置,截取个数) | 字符串截取;第一个数是开始的位置,第二个数字是从截取位置开始截取的个数 | 
2.数字函数:
| 函数 | 说明 | 示例 | 
| ABS(X) | X的绝对值 | ABS(-3)=3 | 
| ACOS(X) | X的反余弦 | ACOS(1)=0 | 
| COS(X) | 余弦 | COS(1)=0.54030230586814 | 
| CEIL(X) | 大于或等于X的最小值 | CEIL(5.4)=6 | 
| FLOOR(X) | 小于或等于X的最大值 | FLOOR(5.8)=5 | 
| LOG(X,Y) | X为底Y的对数 | LOG(2,4)=2 | 
| MOD(X,Y) | X除以Y的余数 | MOD(8,3)=2 | 
| POWER(X,Y) | X的Y次幂 | POWER(2,3)=8 | 
| ROUND(X[,Y]) | X在第Y位四舍五入 | ROUND(3.456,2)=3.46 | 
| SQRT(X) | X的平方根 | SQRT(4)=2 | 
| TRUNC(X[,Y]) | X在第Y位截断 | TRUNC(3.456,2)=3.45 | 
| trunc(X) | 舍弃小数位 | 
2.日期函数:
| 函数 | 说明 | 
| ADD_MONTHS(d,n) | 在某一个日期 d 上,加上指定的月数 n,返回计算后的新日期 | 
| LAST_DAY(d) | 返回指定日期当月的最后一天 | 
| ROUND(d[,fmt]) | 回一个以 fmt 为格式的四舍五入日期值, d 是日期, fmt 是格式 Ø ① 如果 fmt 为“YEAR”则舍入到某年的 1 月 1 日,即前半年舍去,后半年作为下一年。 Ø ② 如果 fmt 为“MONTH”则舍入到某月的 1 日,即前月舍去,后半月作为下一月。 Ø ③ 默认为“DDD”,即月中的某一天,最靠近的天,前半天舍去,后半天作为第二天。 Ø ④ 如果 fmt 为“DAY”则舍入到最近的周的周日,即上半周舍去,下半周作为下一周周日。 例:SELECT SYSDATE,ROUND(SYSDATE),ROUND(SYSDATE,'day'), ROUND(SYSDATE,'month'),ROUND(SYSDATE,'year') FROM dual; | 
| EXTRACT(fmt FROM d) | 提取日期中的特定部分 | 
| sysdate+3 | 获取当前日期:sysdate;3天后的日期 select ename, sysdate+3 from emp; | 
| || | 管道符,拼接字符串 select ename||3 from emp; | 
| last_day | 获取当月最后一天 select last_day(sysdate) from dual; | 
| next_day | 下一次出现星期X的日期 select next_day(sysdate,'星期日') from dual | 
| add_months | 几个月之后的日期(加减月份) select add_months(sysdate, 4) from dual; | 
| month_between | select trunc(months_between('1-2月-2017',sysdate)) from dual; | 
四、转换函数
| 函数 | 说明 | 
| TO_CHAR(d|n[,fmt]) | 把日期和数字转换为制定格式的字符串。Fmt是格式化字符串 SELECT TO_CHAR(SYSDATE,'YYYY"年"MM"月"DD"日" HH24:MI:SS')"date" FROM dual; 
 | 
| TO_DATE(X,[,fmt]) | 把一个字符串以fmt格式转换成一个日期类型 | 
| TO_NUMBER(X,[,fmt]) | 把一个字符串以fmt格式转换为一个数字 | 
| to_char | 把日期(任意类型)转换成字符串 select to_char(sysdate,'yyyy-mm-dd') from dual; select to_char(123456789,'999,999,999,999') from dual; | 
| to_date | 把任意类型转成时间日期 | 
| to_number | 把任意类型转成数字 select to_number('123')+123 from dual; | 
5.通用函数
| 函数 | 说明 | 
| nvl(a,b) | a不为空时等于a,否则返回b | 
| nvl(x,a,b) | x不为空时返回a,否则返回b | 
| decode(x,a,b,c) | 当x=a时,返回b,否则返回c | 
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号