精华内容
下载资源
问答
  • Oracle计算两个日期间隔的天数、月数和年数:一、天数:在Oracle中,两个日期直接相减,便可以得到天数;1 select to_date('08/06/2015','mm/dd/yyyy')-to_date('07/01/2015','mm/dd/yyyy') from dual;返回结果...

    在Oracle中计算两个日期间隔的天数、月数和年数:

    一、天数:

    在Oracle中,两个日期直接相减,便可以得到天数;

    1 select to_date('08/06/2015','mm/dd/yyyy')-to_date('07/01/2015','mm/dd/yyyy') from dual;

    返回结果:36

    二、月数:

    计算月数,需要用到months_between函数;

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    1 --months_between(date1,date2)

    2 --如果两个日期中“日”相同,或分别是所在月的最后一天,那么返回的结果是整数。否则,返回的结果将包含一个分数部分(以31天为一月计算)

    3 select months_between(to_date('01/31/2015','mm/dd/yyyy'),to_date('12/31/2014','mm/dd/yyyy')) "MONTHS" FROM DUAL;

    4 返回结果: 1

    5 select months_between(to_date('01/01/2015','mm/dd/yyyy'),to_date('12/31/2014','mm/dd/yyyy')) "MONTHS" FROM DUAL;

    6 返回结果: 0.032258064516129

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    1 select abs(trunc(months_between(sysdate , to_date('01/31/2015','mm/dd/yyyy'))))from dual;

    2 select ceil(trunc(months_between(sysdate , to_date('01/31/2015','mm/dd/yyyy'))))from dual;

    3 select floor(trunc(months_between(sysdate , to_date('01/31/2015','mm/dd/yyyy'))))from dual;

    三、年数:

    计算年数,是通过计算出月数,然后再除以12;(也许会有更好的办法,目前还不知道)

    1 select trunc(months_between(to_date('08/06/2015','mm/dd/yyyy'),to_date('08/06/2013','mm/dd/yyyy'))/12) from dual;

    2

    3 --返回结果:2

    展开全文
  • Oracle中,两个日期直接相减,便可以得到天数; 1 select to_date('08/06/2015','mm/dd/yyyy')-to_date('07/01/2015','mm/dd/yyyy') from dual; 返回结果:36 二、月数: 计算月数,需要用到months_between函数...
    一、天数:
    
    在Oracle中,两个日期直接相减,便可以得到天数;
    
    1 select to_date('08/06/2015','mm/dd/yyyy')-to_date('07/01/2015','mm/dd/yyyy') from dual;
    
    返回结果:36
    二、月数:
    
    计算月数,需要用到months_between函数;
    
    --months_between(date1,date2)   
    --如果两个日期中“日”相同,或分别是所在月的最后一天,那么返回的结果是整数。否则,返回的结果将包含一个分数部分(以31天为一月计算)     
    select months_between(to_date('01/31/2015','mm/dd/yyyy'),to_date('12/31/2014','mm/dd/yyyy')) "MONTHS" FROM DUAL;      
     返回结果: 1      
     select months_between(to_date('01/01/2015','mm/dd/yyyy'),to_date('12/31/2014','mm/dd/yyyy')) "MONTHS" FROM DUAL;      
    返回结果: 0.032258064516129
     select abs(trunc(months_between(sysdate , to_date('01/31/2015','mm/dd/yyyy'))))from dual;
     select ceil(trunc(months_between(sysdate , to_date('01/31/2015','mm/dd/yyyy'))))from dual;
     select floor(trunc(months_between(sysdate , to_date('01/31/2015','mm/dd/yyyy'))))from dual;
    三、年数:
    
    计算年数,是通过计算出月数,然后再除以12;(也许会有更好的办法,目前还不知道)
    
    select trunc(months_between(to_date('08/06/2015','mm/dd/yyyy'),to_date('08/06/2013','mm/dd/yyyy'))/12) from dual;
     
    --返回结果:2

     

    展开全文
  • Oracle 计算两个日期之间的月份数、月份列表、天数、日期列表 Oracle 计算两个日期之间的月份数、月份列表、天数、日期列表 获取日期之间的月数(包括自身) 时间:2019-05-30 至 2019-08-01 select...

    目录

    Oracle 计算两个日期之间的月份数、月份列表、天数、日期列表


    Oracle 计算两个日期之间的月份数、月份列表、天数、日期列表


    1. 获取日期之间的月数(包括自身)

      1. 时间:2019-05-30 至 2019-08-01 

      2. select
               (MONTHS_BETWEEN ( TRUNC(TO_DATE('2018-08-01','YYYY-MM-DD'),'MONTH'), TRUNC(TO_DATE('2018-05-30','YYYY-MM-DD'),'MONTH') ) + 1) MONTH_COUNT
        from
               dual;
        *另一种易理解的方法:
        select
               (MONTHS_BETWEEN ( to_date(to_char(sysdate,'yyyy-MM'),'yyyy-MM'), to_date(to_char(to_date('2019-06-30','yyyy-MM-dd'),'yyyy-MM'),'yyyy-MM') ) + 1) MONTH_COUNT
        from
               dual;

         

      3. Result:
        MONTH_COUNT
        4
        

         

      4. 函数知悉:
        1. MONTHS_BETWEEN (date1, date2)
        2. TRUNC(SYSDATE,'MONTH')
          1. ROUND(d[,fmt]),返回一个以 fmt 为格式的四舍五入日期值,d 是日期,fmt 是格式 模型。默认 fmt 为 DDD,即月中的某一天。  如果 fmt 为“YEAR”则舍入到某年的 1 月 1 日,即前半年舍去,后半年作为下 一年。  如果 fmt 为“MONTH”则舍入到某月的 1 日,即前月舍去,后半月作为下一 月。  默认为“DDD”,即月中的某一天,最靠近的天,前半天舍去,后半天作为第 二天。  如果 fmt 为“DAY”则舍入到最近的周的周日,即上半周舍去,下半周作为下 一周周日。 

             与 ROUND 对应的函数时 TRUNC(d[,fmt])对日期的操作,TRUNC 与 ROUND 非常相似,只 是不对日期进行舍入,直接截取到对应格式的第一天。

    2. 获取日期之间的月份列表(包括自身)
      1. 时间:2019-08-01 至 2020-01-01
      2. SQL:
        select
               TO_CHAR(ADD_MONTHS(TO_DATE('2019-08-01','YYYY-MM-DD'),(ROWNUM - 1)), 'yyyy-mm') MOHTN_ID
        from
               dual CONNECT BY ROWNUM <= MONTHS_BETWEEN ( TRUNC(TO_DATE('2020-01-01','YYYY-MM-DD'),'MONTH'), TRUNC(TO_DATE('2019-08-01','YYYY-MM-DD'),'MONTH') ) + 1
        ;

         

      3. Result:
           	MOHTN_ID
        1	2019-08
        2	2019-09
        3	2019-10
        4	2019-11
        5	2019-12
        6	2020-01
        

         

      4. 函数知悉:

        1. ADD_MONTHS(d,n),在某一个日期 d 上,加上指定的月数 n,返回计算后的新日期。 d 表示日期,n 表示要加的月数。 

        2. CONNECT BY:connect by 用于存在父子,祖孙,上下级等层级关系的数据表进行层级查询。

    3. 获取日期之间的天数、日期列表(包含自身)
           时间:2018-01-28 至 2018-02-04

      1. SQL:

        SELECT
               TO_CHAR(TO_DATE('2018-01-28', 'YYYY-MM-DD') + ROWNUM - 1, 'YYYY-MM-DD') DAY_ID
        FROM
               DUAL CONNECT BY ROWNUM <= TO_DATE('2018-02-04', 'YYYY-MM-DD') - TO_DATE('2018-01-28', 'YYYY-MM-DD') + 1;

         

      2. Result:

           	DAY_ID
        1	2018-01-28
        2	2018-01-29
        3	2018-01-30
        4	2018-01-31
        5	2018-02-01
        6	2018-02-02
        7	2018-02-03
        8	2018-02-04
        
      3. 知悉:

        1. TO_DATE(data1) - TO_DATE(date2) :天数

           


     

    展开全文
  • Oracle计算两个日期间隔的天数、月数和年数: 一、计算天数: 在Oracle中,两个日期相减,直接可以得到天数: 1 select to_date('08/06/2015','mm/dd/yyyy')-to_date('07/01/2015','mm/dd/yyyy') from dual; ...

    在Oracle中计算两个日期间隔的天数、月数和年数:

    一、计算天数:

    在Oracle中,两个日期相减,直接可以得到天数:

    1 select to_date('08/06/2015','mm/dd/yyyy')-to_date('07/01/2015','mm/dd/yyyy') from dual;
    
    返回结果:36
    

    二、计算月数:

    计算月数,需要months_between函数;

    1 --months_between(date1,date2)   
    2 --如果两个日期中“日”相同,或分别是所在月的最后一天,那么返回的结果是整数。否则,返回的结果将包含一个分数部分(以31天为一月计算)     
    3 select months_between(to_date('01/31/2015','mm/dd/yyyy'),to_date('12/31/2014','mm/dd/yyyy')) "MONTHS" FROM DUAL;      
    4 返回结果: 1      
    5 select months_between(to_date('01/01/2015','mm/dd/yyyy'),to_date('12/31/2014','mm/dd/yyyy')) "MONTHS" FROM DUAL;      
    6 返回结果: 0.032258064516129
    
    
    1 select abs(trunc(months_between(sysdate , to_date('01/31/2015','mm/dd/yyyy'))))from dual;
    2 select ceil(trunc(months_between(sysdate , to_date('01/31/2015','mm/dd/yyyy'))))from dual;
    3 select floor(trunc(months_between(sysdate , to_date('01/31/2015','mm/dd/yyyy'))))from dual;
    

    三、年数:

    计算年数,是通过计算出月数,然后再除以12;

    1 select trunc(months_between(to_date('08/06/2018','mm/dd/yyyy'),to_date('08/06/2015','mm/dd/yyyy'))/12) from dual;
    2 --返回结果:3
    
    展开全文
  • Oracle计算两个日期之间的天数[@more@]SELECT TRUNC(TO_DATE( '2011-03-01 ', 'YYYY-MM-DD ')-TO_DATE( '2011-01-01 ', 'YYYY-MM-DD '...
  • oracle计算两个日期的时间差时分秒

    万次阅读 2017-03-16 11:24:18
    两个Date类型字段:START_DATE,END_DATE,计算两个日期的时间差(分别以天,小时,分钟,秒,毫秒): 天: ROUND(TO_NUMBER(END_DATE - START_DATE)) 小时: ROUND(TO_NUMBER(END_DATE - START_DATE)
  • 两个Date类型字段:START_DATE,END_DATE,计算两个日期的时间差(分别以天,小时,分钟,秒,毫秒): 天:ROUND(TO_NUMBER(END_DATE - START_DATE)) 小时:ROUND(TO_NUMBER(END_DATE - START_DATE) * 24) ...
  • oracle计算相隔日期天数

    千次阅读 2018-03-14 10:36:12
    获取共过了多少天,这是原来sql中的写法,报错ROUND(TO_NUMBER (SYSDATE - 1 - MAX_OPER_TIME))round 四舍五入TO_NUMBER 转换为number类型sysdate 获取系统当前时间MAX_OPER_TIME 从数据库查询出来的日期,存储的是...
  • Oracle 计算两个日期之间的时间差:
  • select to_date(‘11/09/2020’,‘mm/dd/yyyy’) - to_date(‘05/24/2019’,‘mm/dd/yyyy’) from dual
  • oracle如何计算两个日期的相差天数、月数、年数、小时数、分钟数、秒数 1、相差天数(两个日期相减) --Oracle中两个日期相差天数-- select TO_NUMBER(TO_DATE('2018-6-5','yyyy-mm-dd hh24:mi:ss')- TO_DATE('...
  • 本人编写,通过自己定义的函数计算两个日期之间周末的天数和工作日天数,经过测试,非常好用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,145
精华内容 2,858
关键字:

oracle计算两个日期天数