‘userenv’----不可改变
- 字符函数
-- 字符函数 -- 1. lower(char) -- 2. upper(char) -- 3. length(char) -- 4. substr(char,m,n),m:起始位置,n:个数 -- 以首字母大写的方式显示所有员工的姓名。 select upper(substr(ename,1,1))||lower(substr(ename,2,length(ename)-1)),sal from emp; -- 5. replace(char,search_string,replace_string) -- 显示所有员工的姓名,用'我是A'替换所有的'A' -- 6. instr(char1,char2,[,n[,m]])取子串在字符串的位置
- 数学函数
-- 数学函数 -- 1. round(n,[m]),该函数用于执行四舍五入,如果省掉m,则四舍五入到整数, -- 如果m是正数,则四舍五入到小数点的m位后 -- 如果m是负数,则四舍五入到小数点的m位前 -- 2. trunc(n,[m]),截取数字 -- 3. mod(m,n) -- 4. floor(n),向下取整 -- 5. ceil(n),向上取整 -- 在做Oracle测试,可以使用dual表。
- 日期函数
-- 日期函数 -- 默认情况下日期格式是dd-mon-yy即12-7月 -78 -- sysdate,返回系统时间 -- 查找已经入职8个月的以上员工 select * from emp where sysdate>add_months(hiredate,8); -- 显示满10年服务年限的员工 select * from emp where sysdate>=add_months(hiredate,12*10); -- 对于每个员工,显示其加入公司的天数。中文字符用双引号 select ename,trunc(sysdate-hiredate) "入职天数" from emp; -- 找出各月倒数第3天受雇的所有员工 select ename,hiredate from emp where last_day(hiredate)-2=hiredate;
- 转换函数
-- 转换函数 -- to_char -- 日期可否显示时/分/秒 select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp; -- 薪水是否可以显示指定的货币符号 select ename,to_char(sal,'L9999.99') sal from emp; -- 显示1980年入职的所有员工 select * from emp where to_char(hiredate,'yyyy')=1980; -- 显示所有12月份入职的员工 select * from emp where to_char(hiredate,'mm')=12; -- to_date -- 将字符串转化成date类型的数据 -- 按照中国人的年月日添加日期
- 系统函数
'userenv' 不可改变
-- 系统函数
select sys_context('userenv','db_name') from dual;