基本函数 | |
---|---|
字符串函数 |
|
initcap(字符串|列) 返回字符串;开头字母大写,其他字母小写; select initcap(ename) from emp c; |
|
length(字符串|列) 返回数字;获取指定字符的长度 select length(ename) from emp; |
|
— |
|
replace(字符串|列,旧字符串,新字符串 ); 替换 |
|
数值函数 |
round(列|数字[,小数位]) 返回数字;四舍五入; –如果没有设置小数点的保留位数,那么会不保留小数直接进位; –可以设置负数,表示进行整数位进行四舍五入; select round(788.6)from dual; select round(726.6,-2) from dual;–700 |
trunc(列|数字[,小数位]) 返回数字;数据截取,不进位; select trunc(769.5641234),trunc(769.5641234,2),trunc(769.5641234,2) from dual; |
|
mod(列|数字,列|数字) 返回数字 求模(求余数) select mod(10,3) from dual; |
|
日期函数 |
–当前时间 ,oracle提供了一个伪列 sysdate select sysdate from dual; |
–日期操作公式 日期+数字=日期(表示若干天之后的日期) 日期-数字=日期(表示若干天之前的日期) 日期-日期=数字(天数) select sysdate-7,sysdate+240 from dual; — 对于日期而言,由于每个月的天数是不同的,所以直接进行天数加法实现月数的计算是不准确的; —查询出每个雇员的编号、姓名、职位、已经被雇用的天数 –如果直接使用天数来实现年或月的计算,那么最终的结果一定是不准确的; select e.empno,e.ename,e.job,sysdate-e.hiredate from emp e where e.hiredate is not null; |
|
–为了实现准确的日期操作,oracle 提供了日期函数来处理日期 add_months (列|日期,数字) 返回值:日期 在指定日期上增加若干个月之后的日期 months_between (列|日期,列|日期) 返回值:数字 返回两个日期之间所经历的月数; last_day (列|日期) 返回值:日期 取得指定日期所在月的最后一天; next_day (列|日期,星期X) 返回值:日期 返回下一个指定的一周时间数对应的日期 |
|
—
|
|
转换函数 |
to_char(列|日期|数字,转换格式) 返回值: 字符串 将日期或数字格式化为指定的字符串; to_date(列|字符串,转换格式) 返回值: 日期 按照指定的转换格式编写字符串后将其变为日期型数据 |
转换格式的标记: 日期:年(yyyy) 月(mm),日(dd) 时间: 时(hh/hh24)分(mi) 秒(ss) 数字:任意数字(9) 货币符号(L) select to_char(sysdate,’yyyy-mm-dd’) from dual; — 利用to_char()实现日期的拆分; select to_char(sysdate,’yyyy’),to_char(sysdate,’mm’),to_char(sysdate,’dd’) from dual; — 查询在二月份雇用的雇员信息 select * from emp where to_char(hiredate,’mm’)=’11’; oracle 提供了自动转型的操作,如果不匹配会自动匹配; select to_char(12345678,’L999,999,999′) from dual; select to_date(‘2018-11-26′,’yyyy-mm-dd’) from dual; |
|
通用的函数 |
– select e.*, decode(job,’java’,’JAVA工程师’,’manager’,’经理’,’普通员工’)from emp e;
select case when hylx=’11’ then ‘普通企业会员’ |