• Oracle-时间函数-add_months(), last_day(), months_between(), next_day()


    Oracle中的常用的时间函数的总结: 

    --ADD_MONTHS()

    一、函数说明: 

    格式:ADD_MONTHS(DATE, MONTHS)

    注:MONTHS 可以是负数,尽量是整数,如果给小数,则正数被截为小于该数的最大整数,负数则被截为大于该数的最小整数

    此函数表示在给定的时间 DATE 基础上增加 MONTHS 个月,结果返回一个新的日期。 

    二、用法实例1

    --emp表查询列出来公司就职时间超过24年的员工名单

    select ename, hiredate from emp where hiredate <= add_months(sysdate, -288);

    --负数代表系统时间(sysdate)之前的24年的时间-288 = -24*12

    --查询出在员工'SCOTT'入职一年后入职的员工的信息

    select ename, a.hiredate, sal from emp a, (select hiredate from emp where ename = 'SCOTT') b where a.hiredate > = add_months(b.hiredate, 12);

    --查询半年前的时间

    select add_months(sysdate,6) from dual;

    说明:dualoracle提供的最小功能表,它只有一行一列

    三、用法实例2

    SELECT add_months(to_date('29-02-1996', 'dd-mm-yyyy'),-12.99) FROM dual; --返回  1995-02-28 

    SELECT add_months(to_date('15-09-1961','dd-mm-yyyy'),1) FROM dual; --返回 1961-10-15

    SELECT add_months(to_date('31-10-1961','dd-mm-yyyy'),1) FROM dual; --返回 1961-11-30

    SELECT add_months(to_date('31-01-1999','dd-mm-yyyy'),1) FROM dual; --返回 1999-02-28

    --LAST_DAY()

    一、函数说明: 

    格式:LAST_DAY(DATE),返回本月的最后一天

    注:MONTHS 可以是负数,尽量是整数,如果给小数,则正数被截为小于该数的最大整数,负数则被截为大于该数的最小整数

    此函数表示在给定的时间 DATE 基础上增加 MONTHS 个月,结果返回一个新的日期。    

    二、用法实例1 

    SELECT LAST_DAY(SYSDATE) FROM DUAL; --返回 2018-05-31 00:14:18

    --MONTHS_BETWEEN() 

    一、函数说明: 

    格式:MONTHS_BETWEEN(DATE1, DATE2),用于计算date1date2之间有几个月

    如果date1在日历中比date2晚,那么MONTHS_BETWEEN()就返回一个正数。

    如果date1在日历中比date2早,那么MONTHS_BETWEEN()就返回一个负数。

    如果date1date2日期一样,那么MONTHS_BETWEEN()就返回一个0    

    二、用法实例1 

    SELECT MONTHS_BETWEEN(to_date('2018-05-03', 'yyyy-MM-dd'), to_date('2018-09-11', 'yyyy-MM-dd')) mont FROM DUAL; --返回 -4.25806451612903

    oracle里面,以31天为基数 

    --NEXT_DAY()  

    一、函数说明:  

    格式:NEXT_DAY(SYSDATE, '星期一')或者 NEXT_DAY(SYSDATE, 2),用于计算下一个星期一是几号,Oracle中的星期日是0,星期一是1 

    二、用法实例1:  

    SELECT NEXT_DAY(SYSDATE, '星期一') "下周一" FROM DUAL; --返回 2018-05-21 22:11:06

     

     

  • 相关阅读:
    winform程序,备份数据库+并压缩+并删除以前的备份
    冒泡排序
    存储过程和SQL语句比较
    简单的firebird插入速度测试
    [收藏转]由于CredSSP加密Oracle修正 导致远程桌面报错处理
    由Handle转换为控件
    字符串格式化
    查询mssql的死锁语句
    读取和修改app.config文件
    json序列化与反序列化
  • 原文地址:https://www.cnblogs.com/bishuihengchen/p/9022566.html
Copyright © 2020-2023  润新知