您的位置:首页 > 数据库 > Oracle

oracle中的常用函数

2012-05-09 21:22 260 查看
1,===========字符函数

·lower(char)

·upper(char)

·length(char)

·substr(char,begin,length)

这里要注意一下下的是:begin 是从第几个开始,length是指取多长,不要和java中substring混淆了,java中的substring中的最后一个参数是取到第几个位置

·replace(char1,char2,char3)

把char1中的char2字符替换成char3字符

·instr(char, ch , n , m) --找到ch在char中的位置,返回的是一个整数,表示出现的位置

n : 从char中的第几个字符开始找,可以是负数,如果是负数的话,那么从最后面开始找,

m : 找第几次出现的位置

demo:

SQL> SELECT INSTR('CORPORATE FLOOR','OR', -1, 2) from dual;

找到‘OR’在 'CORPORATE FLOOR'中出现的位置,但是是从最后面开始找,从前面数第一个出现的位置:

结果是 : 5

2,========数值函数,

·round(n[, m ]): 四舍五入函数,m 是保留的小数位,如果是负数的话,就是整数位

SQL> select round(1203.352,-1) from dual; -- 1200

·trunc(n[, m]) : 只舍不入函数,和round一样,只是这个函数不会进行五入的操作

·mod(n,m) :取余

·floor(n):不大于n 的最大整数

·ceil(n) :不小于n 的最小整数

其他的一些不常用的数值函数请查阅文档。。。

3,=========日期函数

·sysdate : 系统时间

·add_months(date, n ) : 增加月份

?显示入职超过20年的员工信息

SQL>select * from emp where sysdate > add_months(hiredate, 240); --增加月份

·last_day(date) : 显示每个月的最后一天的日期

?查询每个月的最后三天入职的员工信息

SQL> select * from emp where hiredate > last_day(hiredate)-3 ;

·to_date(char,format): 在字符串转换为固定日期格式

SQL > insert into emp values(....., to_date('1990-02-12','yyyy-mm-dd') ,....);

·to_char(sysdate,'yyyy') 得到年

to_char(sysdate,'MM') 得到月

to_char(sysdate,'Q') 得到季度,1-3为第一季度

to_char(sysdate,'ddd') 得到一年中的第几天

to_char(sysdate,'dd') 得到一个月中的第几天

to_char(sysdate,'d') 得到一周中的第几天

to_char(sysdate,'dy') 得到中文的星期几,如:星期六

to_char(sysdate,'ww') 得到当年的第几周

to_char(sysdate,'w') 得到当月的第几周

to_char(sysdate,'hh24') 得到小时,24小时制的

to_char(sysdate,'hh12')

to_char(sysdate,'mi') 得到分钟

to_char(sysdate,'ss') 得到秒

?显示入职超过20年的员工信息

SQL>select * from emp where to_char(hiredate+ 20,'yyyy') < to_char(sysdate,'yyyy') ;

4,转换函数

在oracle中有些情况下会自动转换类型:

如:

· create table test(tid number(4));

insert into test values('1001'); -- oracle 会把‘1001’转换为1001

·create table test(tid varchar2(4));

insert into test values(1001); -- oracle 会把 1001 转换为‘1001’

但是很多情况下,oracle需要借助转换函数来转换:

如:

to_date(); --在上面的日期函数的时候有提到

to_char(); -- 上面在日期函数的时候有说道

SQL> select ename,to_char(sal,'L99,999.99') from emp ; ---为什么是五个9,因为sal字段的长度是number(7,2) ;

5,======系统函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: