PLSQL 常用函数

--类型转换
--TO_CHAR(date, format):   根据format重新格式日期date的格式(转换日期格式到字符串)
--TO_DATE(char, format):   按照指定的format格式将字符串转换为oracle的日期型
--TO_NUMBER(char):         将给出的数字子串转换为数字

SELECT to_char(SYSDATE, 'dd-mm-yyyy') FROM dual;
SELECT to_date('22-09-2012', 'dd-mm-yyyy') FROM dual;
SELECT to_number('22092012') FROM dual;
;


--日期处理
--add_months(date,count)          返回日期date上加上count个月后的结果
--greatest(date1,date2,..)        从日期列表中选出最晚的日期
--least(date1,date2,..)           从日期列表中选出最早的日期
--last_day(date)                  返回日期date所在的月的最后一天
--months_between(date2,date1)     给出date2-date1的月数,以小数计算
--next_day(date, day)             给出日期date之后下一天的日期,这里的day为星期   字符集有关 1 或者 星期一 与字符集有关
--trunc(date,format)              按照给出的要求格式将日期截断,未指定format时,将日期截为12PM  精准到 对应formate 其他用 1 填充
                                --小数截取位数                                                                      
--SYSDATE                         用来得到系统的当前日期


SELECT SYSDATE FROM dual;
SELECT add_months(to_date('22-09-2012', 'dd-mm-yyyy'),1) FROM dual;
SELECT greatest(to_date('22-09-2012', 'dd-mm-yyyy'),to_date('23-09-2012', 'dd-mm-yyyy')) FROM dual;
SELECT least(to_date('22-09-2012', 'dd-mm-yyyy'),to_date('23-09-2012', 'dd-mm-yyyy')) FROM dual;
SELECT last_day(to_date('22-10-2012', 'dd-mm-yyyy')) FROM dual;
SELECT months_between(to_date('24-02-2012', 'dd-mm-yyyy'),to_date('25-01-2012', 'dd-mm-yyyy')) FROM dual;
SELECT next_day(to_date('22-10-2012', 'dd-mm-yyyy'),1) FROM dual;

SELECT trunc(to_date('22-10-2012', 'dd-mm-yyyy'),'mm') FROM dual;

SELECT EXTRACT(YEAR FROM (to_date('22-10-2012', 'dd-mm-yyyy'))) FROM dual;

SELECT EXTRACT(YEAR FROM DATE'2012-10-22') FROM dual;


SELECT trunc(23.1293,2) FROM dual;
SELECT ROUND(to_date('01-07-2012', 'dd-mm-yyyy'),'yy') FROM dual;
;

--字符串处理
--initcap(string)                                返回字符串并将字符串的每一个单词的字母大写
--lower(string)                                  将字符串string所有字符变为小写
--upper(string)                                  将字符串string所有字符变为大写
--length(string)                                 返回字符串string的长度
--ltrim(string,set)                              返回删除从左边算起的出现在字符串set中的字符string
--rtrim(string,set)                              返回删除从右边算起的出现在字符串set中的字符string
--replace(string, searchstring, repstring)       返回用repstring替换所有在string中出现的searchstring后的字符串string
--instr (string1, string2)                       以整数形式返回string1在string2中第一次出现的位置 从1开始
--substr (string, m, n)                          返回在string中从位置m开始,有n个字符长的string的一部分
--concat(string1, string2)                       用于将string1和string2连接起来,作用和||相似,但只能连接2个字符串,||可连接多个
;

SELECT initcap('i am jeff') FROM dual;
SELECT lower('I AM JEFF') FROM dual;
SELECT upper('i am jeff') FROM dual;
SELECT length('i am jeff') FROM dual;
SELECT ltrim('i am jeff','i') FROM dual;
SELECT rtrim('i am jeff','i') FROM dual;
SELECT trim(' i am jeff ') FROM dual;
select trim (both from ' DWEYE ')FROM dual;
select trim (TRAILING from ' DWEYE ')FROM dual;
select trim (LEADING from ' DWEYE ')FROM dual;
SELECT replace('i am jeff','f','a') FROM dual;
SELECT instr('i am je jeff','jeff') FROM dual; 
SELECT substr('iamjejeff','2','3') FROM dual; 
SELECT concat('i am','jeff') FROM dual; 


--数字处理
--ceil(n) 用于返回大于或等于给出数字n的最小整数
--floor(n) 用于返回小于或等于给出数字n的最大整数
--round(m,n) 用于返回四舍五入到指定n位小数m的值
--trunc(m,n) 用于返回裁剪到位置n位小数的m的值
--mod(m,n) 用于返回m和n两数的余数值(求模)
--power(m,n) 用于返回m的n次方
--sqrt(n) 用于返回数字n的平方根
--sign(n) 根据数字n的值决定返回值,n大于0返回1;n小于0返回-1;n等于0返回0

;
SELECT ceil(2.01) FROM dual; 
SELECT floor(2.01) FROM dual; 
SELECT round(2.11,1) FROM dual; 
SELECT trunc(2.11,1) FROM dual; 
SELECT mod(2.01,2) FROM dual; 
SELECT power(3,2) FROM dual; 
SELECT sqrt(2) FROM dual; 
SELECT sign(-1) FROM dual; 


--NVL
--NVL(c1,c2)       IF c1 is null THEN c2 ELSE c1 END
--NVL2(c1,c2,c3)  如果c1非空则返回c2,如果c1为空则返回c3
--NULLIF(c1,c2)   于CASE WHEN c1 = c2 THEN NULL ELSE c1 END

;
SELECT NVL(NULL,'2') FROM dual; 
SELECT NVL2('a','1','2') FROM dual; 
SELECT NULLIF('2','2') FROM dual; 

--decode
--DECODE(value, search_value, result, default_value)

--聚合函数
--AVG MIN MAX SUM COUNT

转载于:https://my.oschina.net/jeffyu/blog/80012

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值