单行函数:作用于一行,返回一个值
多行函数:作用于多行,返回一个值
字符函数
--小写变大写 select upper('yes') from dual; --YES --大写变小写 select upper('YES') from dual; --yes
数值函数
select round(26.18) from dual;--26 select round(26.18,1) from dual;--26.2 select round(26.14,1) from dual;--26.1 --四舍五入,后边的参数表示保留位数 select trunc(56.16) from dual;--56 select trunc(56.16,1) from dual;--56.1 select trunc(56.16,-1) from dual;--50 --直接截取,不再看后边的位数是否大于5 select mod(10,3) from dual;--1 --求余数
日期函数
--emp表中所有员工入职距离现在几天 select sysdate-e.hiredate from emp e; --算出明天此刻 select sysdate+1 from dual; --emp表中所有员工入职距离现在几月 select months_between(sysdate,e.hiredate) from emp e; --emp表中所有员工入职距离现在几年 select months_between(sysdate,e.hiredate)/12 from emp e; --emp表中所有员工入职距离现在几周 select (sysdate-e.hiredate ) from emp e;
转换函数
--转换函数 --日期转字符串 select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual; select to_char(sysdate,'fm yyyy-mm-dd hh:mi:ss') from dual;--去掉0 select to_char(sysdate,'fm yyyy-mm-dd hh24:mi:ss') from dual;--24小时计数法 --字符串转日期 select to_date('2019-8-28 20:51:58','fm yyyy-mm-dd hh24:mi:ss') from dual;
通用函数
--通用函数 --算出emp表中所有员工的年薪 --如果null值和任意数字做算数运算,结果都是null值 select e.sal*12+nvl(e.comm,0) from emp e;--nvl如果是null,用0代替