代码改变世界

Oracle操作2

2020-03-07 23:07  默默不语  阅读(203)  评论(0编辑  收藏  举报

--
绝对值 select abs(-5) from dual; --向上取整 select ceil(-5.9) from dual; --向下取整 select floor(-5.6) from dual; --幂运算(3的2次幂) select power(3,2) from dual; --平方根(只能开平方根) select sqrt(9) from dual; --取模 select mod(10,3) from dual; --四舍五入 select round(5.4) from dual; --截断(默认截取整数),(3代表保留3位小数,-3代表截掉最后三位整数并用0补齐) select trunc(314568.1415926-3) from dual;

 

--日期函数
--SYSDATE获取系统时间(注意:该函数没有括号)
select sysdate from dual;
--SYSTIMESTAMP获取系统时间戳(精确度更高)
--06-3月 -20 03.29.01.019000 下午 +08:00
select systimestamp from dual;
--日期函数进行加减运算
select sysdate+10 ,sysdate from dual;
--systimestamp加减运算后自动转成了sysdate格式
select systimestamp-10 from dual;
--得出的小数以天为单位
select sysdate-e.hiredate from emp e;

--加减指定月数
select add_months(hiredate,1) ,hiredate from emp;
--返回两个日期间的月数
select months_between(sysdate,hiredate),sysdate-hiredate from emp;
--当前指定日期所在月的最后一天 
select last_day(hiredate) from emp;
--返回指定日期的下一个星期几
--(不能为周几,只能是星期几,但可以为1-7,1代表周日,7的代表周六)
select next_day(sysdate,'星期六') from emp;
--日期的截断,(默认截断到天,month表示截断到月,year截断到年)
select trunc(hiredate) from emp;

 

练习

--查询每个员工的姓名,以及到今天他共工作了几天
select ename,sysdate-emp.hiredate,round(sysdate-emp.hiredate) from emp;
--查询在该月最后一天入职的员工姓名及入职日期
select ename,hiredate from emp where hiredate=last_day(hiredate);
--查询在该月第一天入职的员工姓名及入职日期
select ename,hiredate from emp where hiredate=trunc(hiredate,'month');

 

--时区
--数据库时区
select DBTIMEZONE from dual;
--会话时区
select SESSIONTIMEZONE from dual;
--获取当前日期包含时区
select CURRENT_DATE from dual;
--获取当前系统时间
select sysdate from dual;