专栏首页java系列博客ORACLE函数MONTHS_BETWEEN

ORACLE函数MONTHS_BETWEEN

因系统折旧月份是按当月是否满15天来算是否为一个月,故此研究了下MONTHS_BETWEEN已适应折旧的逻辑

  • 官网函数说明:

MONTHS_BETWEEN官网说明

MONTHS_BETWEEN returns number of months between dates date1 and date2. If date1 is later than date2, then the result is positive. If date1 is earlier than date2, then the result is negative. If date1 and date2 are either the same days of the month or both last days of months, then the result is always an integer. Otherwise Oracle Database calculates the fractional portion of the result based on a 31-day month and considers the difference in time components date1 and date2.

MONTHS_BETWEEN返回日期date1和date2之间的月数。如果date1晚于date2,则结果为正数。如果date1早于date2,则结果为负。如果date1和date2是一个月的相同天数或两个月的最后几天,那么结果总是一个整数。否则,Oracle数据库将根据一个31天的月份计算结果的小数部分,并考虑date1和date2时间组件的差异。

examples:

`SELECT MONTHS_BETWEEN (TO_DATE('02-02-2020','MM-DD-YYYY'), TO_DATE('01-01-2020','MM-DD-YYYY') ) "Months" FROM DUAL;

Months

1.03225806`

months_between算法为01-01-2020到02-02-2020,2020年一月份算一个整月,不整的为2月份的两天,

于是 MONTHS_BETWEEN (TO_DATE('02-02-2020','MM-DD-YYYY'),TO_DATE('01-01-2020','MM-DD-YYYY') ) = 1+2/31=1.03225806

一般也就是months_between的两个参数月需要计算小数部分,最多为开始月算小数+中间月+结束月算xiao'shu;最少为不算,直接为整数月

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Oracle计算时间差函数

    1、months_between(date1,date2)  返回两个日期之间的月份的差值 (1)、如果两个日期月份内天数相同,或者都是某个月的最后一天,返回一...

    郑小超.
  • 【DB笔试面试451】Oracle常用日期处理函数有哪些?这些函数可以实现哪些功能?

    (5)查询当前数据库日期格式的命令:SELECT SYS_CONTEXT('USERENV','NLS_DATE_FORMAT') FROM DUAL;。

    小麦苗DBA宝典
  • Oracle数据库之第一篇

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    海仔
  • Oracle常用SQL与练习【面试+工作】

    Oracle常用SQL与练习 基本 ? 数学函数 ? rownum相关 ? 分页查询 (假设每页显示10条) 不包含排序: ? 包含排序: ? 时间处理 ...

    Java帮帮
  • SQL 基础-->常用函数

    lpad | rpad(x,width [,pad_string]) 字符定长,(不够长度时,左|右填充)

    Leshami
  • Oracle数据库相关函数解析

    在 Oracle 中, 提供了一个虚拟表格, 叫 dual, 专门用于进行测试, 可以从daul 中查询任何数据

    时间静止不是简史
  • 学习python第三天单行函数

    解答:会出现问题(报错了),出错原因,因为在执行代码的过程中对于employee_id,last_name这两列都有107条数据, 而department_i...

    hankleo
  • Oracle sql语句--单行函数、组函数、分组与过滤组信息

    函数分为系统内置函数自定义函数(后期学习的plsql 中定义);了解系统内置函数(方法),重点掌握 to_date 、 to_char (字符和日期的转...

    wolf
  • Mysql和Oracle的区别

    MySql一般使用自动增长类型,在创建表的时候只要指定表的主键为auto increment,插入记录时就不需要再为主键添加记录了,主键会自动增长。Oracle...

    kirin

扫码关注云+社区

领取腾讯云代金券