oracle 中的日期函数

前端之家收集整理的这篇文章主要介绍了oracle 中的日期函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当有了系统日期之后就可以通过下的三个公式来进行一些简单计算:
  • 日期 + 数字 = 日期,表示若干天之后的日期;
  • 日期 – 数字 = 日期,表示若干天之前的 日期;
  • 日期 – 日期 = 数字,表示两个日期之间的隔天。
  • @H_403_8@
    • 计算两个日期之间所经历的月数: MONTHS_BETWEEN( 日期 1 | 列 1,日期 2 | 列 2)
    • 加上指定月之后的日期:ADD_MONTHS(日期|列,月数)
    • 求出指定的下一个一周时间数的日期:日期 NEXT_DAY(日期|列,一周时间数)
      • sql> select next_day(sysdate,'星期一') from dual;
      • NEXT_DAY(SYSDA
      • --------------
      • 08-8月 -16
      • @H_403_8@
      • 求出指定日期所在月的最后一天日期:日期 LAST_DAY(日期|列)
        • sql> select LAST_DAY(SYSDATE) FROM dual;
        • LAST_DAY(SYSDA
        • --------------
        • 31-8月 -16
        • @H_403_8@ @H_403_8@

          举例1:对雇员表emp(eno,ename,hiredate,sal),计算每一位雇员到今天为止的雇佣年限。

          例如:今天是2016年08月12日,JOHN雇佣日期是:1981年06年09日,那么到今天他已经在公司服务了35年、2个月、3天。

          思路:

          第一步: 计算出每一位雇员到今天为止的佣年份,直接利用月数除 12

          SELECT ename,hiredate,TRUNC(MONTHS_BETWEEN(SYSDATE,hiredate)/12) year FROMemp;

          第二步: 计算月 ,在进行年的时候发现存有小数,这些就包含了月

          SELECT ename,hiredate)/12) year,

          TRUNC(MOD(MONTHS_BETWEEN(SYSDATE,hiredate),12)) months

          FROM emp;

          第三步: 计算天数,对于计算天数,实际上只学会了一个公式“日期 1 – 日期 2 = 天数”,于是分析日期:
          日期 1:应该是当前日期“ SYSDATE”;
          日期 2:应该是已经剔除掉了过月之后的日期。


          SELECT ename,

          TRUNC(MONTHS_BETWEEN(SYSDATE,12)) months

          TRUNC(SYSDATE-ADD_MONTHS(hiredate,MONTHS_BETWEEN(SYSDATE,hiredate))) day

          FROM emp;

          举例2:查询出在每个雇员佣所月倒数第二天的全部信息

          SELECT ename,LAST_DAY(hiredate)-2 FROM emp WHERE LAST_DAY(hiredate)-2 =hiredate;

猜你在找的Oracle相关文章