zoukankan      html  css  js  c++  java
  • 数值和日期函数

    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;

  • 相关阅读:
    CodeForces 347B Fixed Points (水题)
    CodeForces 347A Difference Row (水题)
    CodeForces 346A Alice and Bob (数学最大公约数)
    CodeForces 474C Captain Marmot (数学,旋转,暴力)
    CodeForces 474B Worms (水题,二分)
    CodeForces 474A Keyboard (水题)
    压力测试学习(一)
    算法学习(一)五个常用算法概念了解
    C#语言规范
    异常System.Threading.Thread.AbortInternal
  • 原文地址:https://www.cnblogs.com/jassy/p/4234519.html
Copyright © 2011-2022 走看看