日期函数介绍
日期函数用于处理date类型的数据。
默认情况下日期格式是dd-mon-yy 即12-7月-86
1)sysdate:该函数返回系统时间
2)add_months(d,n)在d的日期上加上n个月
例如:add_months(hiredate,8)就是指在入职8个月
3)last_day(d):返回指定日期d所在月份的最后一天
?查找已经入职8个月多的员工
SQL> select * from emp where sysdate > add_months(hiredate,8);
?查找满10年服务年限的员工的姓名和受雇日期
SQL> select ename,hiredate from emp where sysdate >= add_months(hiredate,12*10);
?对于每个员工,显示其加入公司的天数
SQL> select ename 姓名,trunc(sysdate-hiredate) 入职天数 from emp;
?找出各月倒数第三天受雇的所有员工
SQL> select hiredate,ename from emp where last_day(hiredate)-2=hiredate;
在oracle测试的时候可以使用dual表
数学函数介绍
数学函数的输入参数和返回值的数据类型都是数字类型的。
数学函数包括cos,cosh,exp,ln,log,sin,sinh,sqrt,tan,tanh,acos,asin,atan,round
常用的:
1.round(n,[m])
n代表的是要四舍五入的数值,m是指四舍五入几位小数点,如果没有,则四舍五入到整数
SQL> select round(sal,1) from kkkk where ename='kkkk';
2.trunc(n,[m])
n代表的是要截取的,m的是截取小数点几位的,不采用四舍五入方式,要是没有m则不要小数,如果m是负数,则从整数位开始截取
SQL> select trunc(comm,1),comm from kkkk where ename='kkkk1';
3.mod(m,n):取模
4.floor(n):返回小于或是等于n的最大整数
5.ceil(n):返回大于或是等于n的最大整数
对数字的处理,在财务系统或者银行系统中用得最多,不同的处理方法,对财务报表有不同的结果。
具体函数的介绍
1.round(n,[m]):该函数用于四舍五入,如果省掉m,则四舍五入到则四舍五入到整数;如果m是正数,则四舍五入到小数点的m位后。如果m是负数,则四舍五入到小数点的m位前。
2.trunc(n,[m]):该函数用于截取数字,如果省掉m,就截去小数部分,如果m是正数就截取到小数点的m位后,如果m是负数,则截取到小数点的前m位
3.mod(m,n):取模
SQL> select mod(10,3) from dual;
MOD(10,3)
----------
1
4.floor(n):返回小于或是等于n的最大整数
SQL> select floor(comm),comm from kkkk where ename='kkkk2';
FLOOR(COMM) COMM
----------- ---------
65 65.34
5.ceil(n):返回大于或是等于n的最大整数
SQL> select ceil(comm),comm from kkkk where ename='kkkk2';
CEIL(COMM) COMM
---------- ---------
66 65.34
案例数据:2345.56 45.94
?显示在一个月为30天的情况所有员工的日薪金,忽略余数。
SQL> select trunc(sal/30),ename from emp;
或
SQL> select floor(sal/30),ename from emp;
其它的数学函数
abs(n):返回数字n的绝对值
acos(n):返回数字的反余弦值
asin(n):返回数字的反正弦值
atan(n):返回数字的反正切值
cos(n):求n的余弦值
exp(n):返回e的n次幂
log(m,n):返回对数值
power(m,n):返回m的n次幂
系统函数介绍
这个都是显示的是每个数据的系统属性
即有多少个数据就会显示多少行的结果
sys_context
1) terminal:当前会话客户所对应的终端的标识符
2)language:语言
3)db_name:当前数据库的名称
4)nls_date_format:当前会话客户所对应的日期格式
SQL>alter session set nls_date_format = 'yyyy-mm-dd';改日期的默认格式
5)session_user:当前会话客户所对应的数据库用户名
6)current_schema:当前会话客户所对应的默认方案名
7)host:返回数据库所在主机的名称
通过该函数,可以查询一些重要信息,比如你在使用哪个数据库?
select sys_context('userenv','db_name') from dual;
其中sys_context()中的第一个元素'userenv'是固定的
userev:user environment
方案的名字和用户的名字是一致的。