1.转换函数 to_number to_char to_date
#to_number 转换数值型
select to_number('1')+1 from dual;
#to_char 转换字符串型
select to_char(1) from dual;
#to_date 转换日期 sysdate:获取系统时间
select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual;
2.日期函数
--add_months在指定的日期上新增或者减少指定的月份
select add_months(sysdate,2) from dual;
--months_between求月份差
select months_detween(sysdate,to_date('2020-12-12','yyyy-mm-dd'))from dual;
--next-day获取当前时间的后面的星期二是哪一天
next_day(sysdate,'星期二');
--last-day获取当前时间的最后一天是哪一天
last_day(sysdate);
--extract 单独的获取日期的年份,月份,日期.
extract(year from sysdate);
extract(month from sysdate);
extract(day from sysdate);
示例:分别统计每个月份入职(hirdate)的员工有多少人
select(month from hirdate) group by extract(month from hiredate)
--round 四舍五入以天为单位
--yyyy-mm-dd hh24:mi:ss 24小时
select round(to_date('2020-02-20 12:00:01',‘yyyy-mm-dd hh24:mi:ss’)) from dual;\\结果21
--trunc 截断日期
trunc(to_date('2020-02-20 12:00:01',‘yyyy-mm-dd hh24:mi:ss’))
3字符串函数
length 求字符串的长度
ltrim和rtrim 去除两端的空格
length(rtrim(' helloworld'))\\结果:10
replace 替换
replace(‘zz is a nice man’'zz','邓炎康');
lpad|rpad 在左右两端填充指定的内容
upper|lower 转换大小写
cha|ascii 数值与字符的转换
select chr(97) from dual;\\结果:a;
instr从目标字符串的指定位置开始查找指定字符的下标
substr从指定的位置开始截取后面几位.
decode('sb',‘nb’,'1','ab','2','sb','3')
如果给sb的第一个值是1就输出1,
如果给sb的第二个值是2就输出2,
如果给sb的第三个值是3就输出3,
4数学函数
abs(-1) 绝对值
ceil(12.001) 向上取整 //结果:13
floor(12.99999) 向上取整 //结果:12
sprt(4) 开平方//结果:2
prwer(2,3) 幂//结果:8
round(12.89,1) 四舍五入//结果:12.9
mod(10,3) 取模//结果:1
判断正负:
sign(100)//结果:-1
sign(-100)//结果:1