目录

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
      fromdual;

      *另一种易理解的方法:

      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
      fromdual;
    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:
      selectTO_CHAR(ADD_MONTHS(TO_DATE('2019-08-01','YYYY-MM-DD'),(ROWNUM - 1)), 'yyyy-mm') MOHTN_ID
      fromdual 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:

      SELECTTO_CHAR(TO_DATE('2018-01-28', 'YYYY-MM-DD') + ROWNUM - 1, 'YYYY-MM-DD') DAY_ID
      FROMDUAL 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 计算两个日期之间的年月、日期,月份数、天数相关推荐

  1. Oracle 计算两日期间隔月数

    Oracle 计算两日期之间月数 实际应用中,有时候会计算两日期间隔天数.月数.如直接相减,可能会出问题,如: select 202110-202106 from dual; 结果为:4 看似正确,但 ...

  2. oracle俩个日期的差,oracle计算两个日期的时间差时分秒

    Oracle函数可以实现诸多的功能,下面就介绍使用oracle函数计算时间差的实现方法. 两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒 ...

  3. python时间差转换成天数_Python实现计算两个时间之间相差天数的方法

    本文实例讲述了Python实现计算两个时间之间相差天数的方法.分享给大家供大家参考,具体如下: #-*- encoding:UTF-8 -*- from datetime import date im ...

  4. 使用TIMESTAMPDIFF计算两个时间戳之间的时间间隔需要注意的细节

    问题阐述 A表中有字段如下: DROP TABLE IF EXISTS `A`; CREATE TABLE IF NOT EXISTS `A` (`userId` int(10) unsigned N ...

  5. 怎样计算两个时间之间的间隔

    怎样计算两个时间之间的间隔 1. 怎样计算两个时间之间的间隔? 间隔=Date1.getTime()-Date2.getTime();得出来的是毫秒数. 除1000是秒,再除60是分,再除60是小时. ...

  6. 计算两个时间之间的工作时长

    计算两个时间之间的工作时长(小时)排除周末 package com.test;import org.apache.commons.lang3.time.DateUtils;import java.ma ...

  7. JS 返回两个时间之间的所有日期、月份、年份、季度

    JS 返回两个时间之间的所有日期.月份.年份.季度 1.日期 /*** 获取两日期之间日期列表函数* 返回两个时间之间所有的日期* 参数示例 ('2021-05-31','2021-06-30')* ...

  8. python简单获取两个日期之间的年度、月度、天数差的方法

    最近因为要做一些简单的结算工作,里面有一些规则需要对年度.月份.天数进行比较,在网上查了半天,忽然发现python进行年度.月份.日期处理这么难?!居然只是要计算两个时间之间的月份差,还要数十行代码! ...

  9. python时间差计算器时分秒_Python实现计算两个时间之间相差天数的方法

    本文实例讲述了Python实现计算两个时间之间相差天数的方法.分享给大家供大家参考,具体如下: #-*- encoding:UTF-8 -*- from datetime import date im ...

最新文章

  1. windows家庭版 启用组策略
  2. MTK 驱动(72)---mtk Android如何调试recovery模块
  3. 电脑太慢了最简单的办法怎么弄_电脑感染病毒的10种症状及简单处理办法 电脑中病毒的症状介绍...
  4. 程序员如何在未来之路寻找自己的“龙椅”
  5. 了解PS、学习使用html语义化标签和CSS术语
  6. html5 塔防小游戏,HTML5塔防小游戏源代码
  7. 像计算机科学家那样思考,如何像计算机科学家一样思考?(C语言篇)
  8. [luogu4234]最小差值生成树
  9. JScript基本认知
  10. mmdetection在bbox head中获取epoch值
  11. 企业遇到什么问题一定要用360评估?
  12. STM32超低功耗入门之唤醒
  13. WLAN/Wifi802.11协议简介
  14. 2018年2月Ivanti英万齐(前LANDESK蓝代斯克)关闭中国研发中心
  15. autojs免root脚本引擎开发的QQ空间说说点赞源码
  16. Unity 内置访问安卓权限
  17. matlab中facedetector,Matlab人脸检测方法(Face Parts Detection)详解
  18. python中continue的用法_关于Python中continue用法问题
  19. 如何解决医院网站商务通无轨迹来源路径的问题
  20. (day2-spring和mybatis学习)-->重点增删改查

热门文章

  1. mysql数据备份合理计划_计划备份mysql数据库
  2. 关于element ui中引入官方的NavMenu时出现点击某个子菜单时,所有的子菜单全都展开问题
  3. CrossOver2022Mac/Linux虚拟机软件如何安装下载教程
  4. 内存数据库如何发挥内存优势?
  5. java基于Android studio的校园通设计
  6. 协程的原理及协程在高并发服务中的应用
  7. 大前端 - 泛客户端开发 - UniAPP项目实战
  8. 【逗老师带你学IT】PRTG监控通过Python+TCP Modbus获取温湿度传感器数据
  9. Win64上底层方式模拟按键制作GTA外挂
  10. 面试中常被问到(25)map和pair区别