select abs(100),abs(-100) from dual;

select sign(100),sign(-100),sign(0) from dual;

select ceil(3.1),ceil(2.8+1.3),ceil(0),ceil(-3.6)
from dual;

-功能 返回小于等于x的最大整数值
-参数 x,数值型
-返回 数字
select floor(3.1),floor(2.8+1.3),floor(0),ceil(-3.6)
from dual;

select power(2.5,2),power(2.5,-2),power(2.5,0),power(10,2)
from dual;

select log(2.5,6.25),log(2.5,0.16),log(2.5,1),log(10,100)
from dual;

select exp(3),exp(0),exp(-3) from dual;

select ln(20.0855369231877),ln(0.0497870683678639
) from dual;

select mod(23,8),mod(82,3) from dual;

如果y不为整数则截取y整数部分,
如果y>0则四舍五入为y位小数
如果y<0则四舍五入到小数点向左y为
select round(5555.6666,2.6),
round(5555.6666,-2.6),
round(5555.6666,3),
round(5555.6666)
from dual;

如果y不为整数则截取y整数部分
如果y>0,x则截取到y位小数
如果y<0,x则截取到小数点向左第y位
select trunc(5555.6666,2.6),
trunc(5555.6666,-2.6),
trunc(5555.6666,-3),
trunc(5555.6666)
from dual;

select sqrt(18),sqrt(10) from dual;

select ascii('A'),ascii('a'),ascii('1')
from dual;

select ascii('我'),ascii('爱'),ascii('你') from dual;

select chr(15108241),chr(15173809),chr(14990752) from dual;

select concat('010','88231657')||'转23' 孙先生电话
from dual;

select initcap('smIIH abc ABC') text
from dual;

select lower('smIIH abc ABC') text
from dual;

select upper('smIIH abc ABC') text
from dual;

select instr('oracle rraning','ra',1,2) instr
from dual;

select instr('青岛大学,山东大学,山东信息职业技术学院','山东',1,2) 学校
from dual;

查看emp表中wname字段中以S开头的员工姓名
select ename from emp where instr(ename,'S')=1;

另一个instrb函数将 多字节符(汉字,全角符等),按2个字符计算
select length('哈哈哈'),
length('hhh'),
length('22 33')
from dual;

lengthb(C1) 多字节符(汉字,全角符等),按2个字符计算
select lpad('sun',10,'*?'),
lpad('sunsunsunsun',10,'*?'),
lpad('sun',10,'!@#$%^&*()_+')
from dual;

在字符串‘gao‘的左边和右边分别加7个6
select lpad(rpad('gao',10,'6666666'),17,'6666666') text
from dual;
select rpad(lpad('gao',10,'6666666'),17,'6666666') text
from dual;

截取字符
select rpad('sun6666',3)
from dual;

select ltrim(' qing dao shi'),
ltrim('qing dao shi','qing dao ')
from dual;

select rtrim(' qing dao shi',' shi')
from dual;

select trim(' qing dao shi '),
trim('*' from '***qing dao shi***')
from dual;

如果源数据中张三的前面或者后面有空字符,直接查找是找不到的
select * from student where trim(sname)='张三';
select replace('i love you','i','he'),
replace('i love you','i ')
from dual;

select substr('20191029',1,4),
substr('20191029',5)
from dual;

substrb(c1,n1[,n2]) 多字节符(汉字,全角符等),按2个字符计算
select translate('he love you','he','i'),
translate('he love you','o','i')
from dual;

select sysdate time
from dual;

select sysdate,
add_months(sysdate,2),
add_months(sysdate,-2)
from dual;

select sysdate,
last_day(sysdate)
from dual;

select sysdate,
months_between(sysdate,to_date('2019-01-01','YYYY-MM-DD')),
months_between(sysdate,to_date('2020-01-01','YYYY-MM-DD'))
from dual;

c1,c2对应的 时区及其简写
大西洋标准时间:AST或ADT
阿拉斯加_夏威夷时间:HST或HDT
英国夏令时:BST或BDT
美国山区时间:MST或MDT
美国中央时区:CST或CDT
新大陆标准时间:NST
美国东部时间:EST或EDT
太平洋标准时间:PST或PDT
格林威治标准时间:GMT
Yukou标准时间:YST或YDT
select sysdate bj_time,
new_time(sysdate,'PDT','GMT') los_angles
from dual;

select sysdate 当前日期,
round(sysdate,'syear') 最近年初日期,
round(sysdate,'q') 最近季度日期,
round(sysdate,'month') 最近月初,
round(sysdate) 最近0点
from dual;

select sysdate 当前日期,
trunc(sysdate) 今天日期,
trunc(sysdate,'day') 本周日,
trunc(sysdate,'month') 本月初,
trunc(sysdate,'q') 本季初,
trunc(sysdate,'year') 本年初日期
from dual;

从当前日期得到之后的第一个星期几的日期
select sysdate 当前日期,
next_day(sysdate,'星期一') 未来第一个星期一,
next_day(sysdate,'星期二') 未来第一个星期二,
next_day(sysdate,'星期三') 未来第一个星期三,
next_day(sysdate,'星期四') 未来第一个星期四,
next_day(sysdate,'星期五') 未来第一个星期五,
next_day(sysdate,'星期六') 未来第一个星期六,
next_day(sysdate,'星期日') 未来第一个星期日
from dual;

select
extract(hour from timestamp '2001-2-16 2:38:40 ' ) 小时,
extract(minute from timestamp '2001-2-16 2:38:40 ' ) 分钟,
extract(second from timestamp '2001-2-16 2:38:40 ' ) 秒,
extract(DAY from timestamp '2001-2-16 2:38:40 ' ) 日,
extract(MONTH from timestamp '2001-2-16 2:38:40 ' ) 月,
extract(YEAR from timestamp '2001-2-16 2:38:40 ' ) 年
from dual;

select sysdate 当前日期,
extract(DAY from sysdate ) 日,
extract(MONTH from sysdate ) 月,
extract(YEAR from sysdate ) 年
from dual;

select dbtimezone
from dual;

select dbtimezone,
sessiontimezone
from dual;

select trunc(sysdate)+(interval '1' second) 加1秒,
trunc(sysdate)+(interval '1' minute) 加1分钟,
trunc(sysdate)+(interval '1' hour) 加1小时,
trunc(sysdate)+(INTERVAL '1' DAY) 加1天,
trunc(sysdate)+(INTERVAL '1' MONTH) 加1月,
trunc(sysdate)+(INTERVAL '1' YEAR) 加1年,
trunc(sysdate)+(interval '01:02:03' hour to second) 加指定小时到秒,
trunc(sysdate)+(interval '01:02' minute to second) 加指定分钟到秒,
trunc(sysdate)+(interval '01:02' hour to minute) 加指定小时到分钟,
trunc(sysdate)+(interval '2 01:02' day to minute) 加指定天数到分钟
from dual;

原文:https://www.cnblogs.com/inmeditation/p/11794266.html