• 数值和日期函数


    1ABS取绝对值

    SELECT ABS(3),ABS(-100) FROM dual;

    结果:3,100

    2CEIL向上取整

    SELECT CEIL(3.34343),CEIL(3.932),CEIL(-3.4432),CEIL(-5.9889) FROM dual; 

    结果:4,4,-3,-5
    3FLOOR向下取整

    SELECT FLOOR(3.34343),FLOOR(3.932),FLOOR(-3.4432),FLOOR(-5.9889) FROM dual; 

    结果:3,3,-4,-6
    4SIN正弦,COS余弦

    SELECT SIN(4),COS(4) FROM dual;

    5POWER(m,n),mN次方

    SELECT POWER(2,4) FROM dual;

    结果:16

    6ROUND函数的使用

    SELECT ROUND(785.652) 不保留小数,ROUND(785.652,2)保留2个小数,ROUND(785.652,-1) 整数位进一位,ROUND(785.352) 小数小数位第一个不到5舍掉,ROUND(784.652,-1) 整数位进一位个位不到5舍掉FROM dual;

    结果:786,785.65,790,785,780

    7TRUNC函数截取不进位的

    SELECT TRUNC(785.652) 不保留小数小数舍掉,TRUNC(785.652,2)保留2个小数,TRUNC(785.652,-1) 整数位进一位,TRUNC(785.352) 保留小数直接舍掉,TRUNC(784.652,-1) 整数位进一位个位舍掉FROM dual;

    结果:785,785.65,780,785,780

    8MOD求余函数

    SELECT MOD(10,3)FROM dual;

    结果:1
    9SQRT平方根

    SELECT SQRT(16) FROM dual;

    结果:4

    10、获取当前时间

    SELECT SYSDATE FROM dual;

    11获取距离今天3天后,和3天前的日期

    SELECT SYSDATE 今天,SYSDATE-3 三天前,SYSDATE+3 三天后 FROM dual;
    12查询出每个员工入职到今天的入职天数,以及十天前每个员工的入职天数

    SELECT e.hiredate 入职日期,SYSDATE 今天,SYSDATE-e.hiredate 入职到今天的天数,SYSDATE-10-e.hiredate 十天前的入职天数FROM emp e;

    13ADD_MONTHS(日期,数字求出在指定日期上加或者减指定的月数,数字,可以为正也可以为负

    SELECT SYSDATE 当前日期,add_months(SYSDATE,3) 三个月之后的日期,add_months(SYSDATE,-3) 三个月之前的日期,add_months(SYSDATE,60) 六十个月之后的日期FROM dual;

    SELECT e.empno,e.ename,e.hiredate,add_months(e.hiredate,3)入职三个月的日期FROM emp e;
    14NEXT_DAY(日期,星期几)求出下个星期的具体日期

    SELECT SYSDATE 当前日期,next_day(SYSDATE,'星期五'下个星期五,next_day(SYSDATE,'星期一'下个星期一FROM dual;
    15LAST_DAY()指定日期的最后一天的日期

    SELECT SYSDATE,last_day(SYSDATE) FROM dual;

    SELECT e.empno,e.ename,e.hiredateFROM emp e WHERE e.hiredate=last_day(e.hiredate)-2;//查询所有在入职日期在当月最后第三天入职的员工,最后一天-2
    16MONTHS_BETWEEN
    --查询每个员工的编号,姓名,入职日期,入职的月数和年份
    --月数MONTHS_BETWEEN(SYSDATE,hiredate)年数MONTHS_BETWEEN(SYSDATE,hiredate)/12

    SELECT e.empno,e.ename,e.hiredate,trunc(months_between(SYSDATE,e.hiredate)) 入职的月数,trunc(months_between(SYSDATE,e.hiredate)/12) 入职的年数FROM emp e;
    17EXTRACT(格式 FROM 日期)将日期分豁,或者计算2个日期的间隔

    SELECT e.empno,e.ename,e.hiredate,TRUNC(months_between(SYSDATE,e.hiredate)/12) ,TRUNC(MOD(months_between(SYSDATE,e.hiredate)12)) 月,TRUNC(SYSDATE-add_months(e.hiredate,months_between(SYSDATE,e.hiredate))) FROM emp e;

    SELECT SYSDATE,EXTRACT(YEAR FROM SYSDATE),EXTRACT(MONTH FROM SYSDATE) ,EXTRACT(DAY FROM SYSDATE) FROM dual;//从时间戳中取出年,月,日,时,分,

    SELECT SYSTIMESTAMP,EXTRACT(YEAR FROM SYSTIMESTAMP),EXTRACT(MONTH FROM SYSTIMESTAMP) ,EXTRACT(DAY FROM SYSTIMESTAMP) 日,EXTRACT(HOUR FROM SYSTIMESTAMP) ,EXTRACT(MINUTE FROM SYSTIMESTAMP) ,EXTRACT(SECOND FROM SYSTIMESTAMP) FROM dual;

  • 相关阅读:
    跨数据库查询——dblink
    进度条
    datagrid 的标题的内容不对应整齐
    ie9table排列不对.td错行,多了一列
    进位方法
    ie9 jscript7 内存不足 页面无响应
    a标签 href触发及传值
    uploadify上传附件 点击保存无效 切F12就可以正常保存
    oracle增加用户密码,cmd导入数据库
    ${}中嵌套${}
  • 原文地址:https://www.cnblogs.com/jassy/p/4234519.html
Copyright © 2020-2023  润新知