https://blog.csdn.net/KEEP_GIONG/article/details/80089703
一、字符函数
lower(char):将字符串转化为小写。
upper(char):将字符串转化为大写。
length(char):返回字符串的长度。注:lengthb(char)返回的是字节的长度,例如:length(char)=lengthb(char)用于判断是不是中文。
substr(char, m, n):截取字符串的子串,n代表取n个字符的意思,不是代表取到第n个。注:m等于0或者1都表示从第一个字符开始。
replace(char, sub_string, replace_string):把char字符串中的sub_string替换成replace_string。
instr(source_string,destination_string,start,total):source_string源字符,destination_string:目标字符,start:查找的开始位置,默认是1,total:查找第几次出现destination_string的位置,默认1。例如:select instr('abcabc','c',1,2) from dual;结果等于6。
rpad:在列的右边粘贴字符。例如:select rpad('oracle',10,'*') from dual;
lpad:在列的左边粘贴字符。例如:select lpad(rpad('oracle',10,'*'),15,'*')from dual;
二、数字函数
round(m,[n]):该函数用于执行四舍五入。例如:round(1.256,2),结果:1.26;round(168.256,-2),结果:200。
trunc(n,[m]):该函数用于截取数字。例如:trunc(1.256,2),结果:1.25;trunc(168.256,-2),结果:100例如:trunc(1.256),结果:1。
select trunc(sysdate)-1 from dual;
2017/6/29
今天为2017/6/30,获得的是昨天的日期
trunc(date):为指定元素而截去的日期值。例如:select sysdate from dual;-----------2016/8/4 21:51:14 系统时间
select trunc(sysdate,'yyyy') from dual;------2016/1/1 返回当年第一天
select trunc(sysdate,'dd') from dual;------2016/8/4 返回当月第一天
select trunc(sysdate,'d') from dual;------2016/7/31 返回当前星期的第一天
mod(m,n):取余函数。例如:mod(10,2),结果:0,mod(10,3),结果:1。
floor(n) :返回小于或是等于n的最大整数
ceil(n) :返回大于或是等于n的最小整数。例如:select floor(-1.25) from dual;
ceil 两个时间相减默认的是天数;
ceil 两个时间相减默认的是天数*24*60 为相差的分钟数
----10分钟以内的数据
CASE
WHEN A.DEV_STATUS = 0
AND ceil(( SYSDATE - DEV_OPERATE_TIME ) * 24 * 60 ) <= 10 THEN
'在线'
WHEN A.DEV_STATUS = 8 THEN
'屏蔽' ELSE '--'
END zt,
abs(n) :返回数字n的绝对值。例如:select abs(-1.25) from dual;
三、日期函数
sysdate:返回系统时间。例如:select sysdate from dual;
add_months(time,months):函数可以得到某一时间之前或之后n个月的时间。例如:select add_months(sysdate,-6) from dual; --该查询的结果是当前时间半年前的时间。
四、转换函数
to_char()函数。例如:select to_char(sysdate,'yyyy-MM-dd hh24:mi:ss') from dual;
yy:两位数字的年份 2004-->04
yyyy:四位数字的年份 2004
mm:两位数字的月份 8 月-->08
dd:两位数字的天 30 号-->30
hh24: 8点-->20
hh12:8点-->08
mi、ss-->显示分钟\秒
to_date():用于将字符串转换成date类型的数据。例如:select to_date('2016-08-04','yyyy-MM-dd') from dual;
select SYSDATE from dual;
select TO_CHAR(SYSDATE,'yyyy-MM-dd') from dual;
select TO_CHAR(SYSDATE,'yyyy-MM-dd hh24:mi:ss') from dual;
select CASE
WHEN TO_CHAR(SYSDATE,'yyyy-MM-dd')='2020-04-01' THEN
1
ELSE
0
END 别名
from dual;
select CASE
WHEN TO_DATE('2020-04-01 16:57:10', 'yyyy-MM-dd hh24:mi:ss')=SYSDATE THEN
1
ELSE
0
END 别名
from dual;
四、其它函数
nvl():空值转换。例如:select nvl(null,'为空') from dual;
decode():它将输入数值与函数中的参数列表相比较。例如:select decode('N','x','女','y','男','不确定') from dual;
wm_concat(column):将多条记录的column字段组成一个用逗号隔开的字符串。例如:select wm_concat(ename) from emp;