一、单行函数
1、日期函数:对日期值进行运算,并生成日期数据类型或数值类型的结果
(1)add_months() 向指定日期中加上若干月数
select sysdate,add_months(sysdate,4) from dual;
(2)months_between() 求两个月之间的间隔
select months_between('4-4月-17',sysdate)
from dual;
(3)last_day() 查询当前日期所在月的最后一天
select last_day(sysdate) from dual;
(4)round() 日期的四舍五入
select round(sysdate) from dual; --到日
select round(sysdate,'month') from dual; --到月
select round(sysdate,'year') from dual; --到年
(5)trunc() 日期截断
select trunc(sysdate) from dual; --到日
select trunc(sysdate,'month') from dual; --到月
select trunc(sysdate,'year') from dual; --到年
区别:四舍五入和直接截断是完全不同的两个概念,截断是把后边的直接去掉。
在round()中,round('4-4月-18') 提示数值无效,因为是日期型,要转化成数值型
select round(to_date('2018-04-04','yyyy-mm-dd'))from dual;
(6)next_day() 下一个日期
select next_day(sysdate,'星期一')from dual;
(7)extract() 提取
select sysdate,extract(day from sysdate) from dual;
select extract(month from to_date('2018-5-1','yyyy-mm-dd'));
2、字符函数:
(1)lower() 全变小写
select lower('SQL Caourse') from dual;
(2)upper() 全变大写
select upper('SQL Caourse') from dual;
(3)initcap() 首字母大写
select initcap('SQL Caourse') from dual;
(4)substr() 截取
select substr('abcdefg',3,2) from dual; --其中3是下标,下标从1开始,2是长度。
(5)lapd() 左填充
select salary,lpad(salary,'15','*') from employees;
(6)rpad() 右填充
select salary,rpad(salary,'15','*') from employees;
(7)trim() 去除左右两边的空格,仅仅是两边不包括中间的
select trim(' ab c d ') from dual;
(8)length() 计算长度
select length(' abc ') from dual;
3、数字函数
(1)sign(n) 取正负值 +1 -1 0
还有一系列的数学函数值
4、其他函数
(1)nvl() 类似于三目运算符 ?:
(2)null if(表达式1,表达式2) 相等返回null,不相等返回表达式1
(3)to_char() 数据类型由字符串型转换成字符型
(4)to_number() 将字符串转换成数字型 正好与to_char()相反