繁体   English   中英

oracle 如何查找两个日期之间的月数

[英]oracle how to find number of months between two dates

我试图找出两个日期之间的一些飞蛾。 日期 1:20200401 (YYYYMMDD) 日期 2:20200515 (YYYYMMDD)

我尝试了以下查询

SELECT MONTHS_BETWEEN( TO_DATE ('20200515', 'YYYYMMDD'), 
                       TO_DATE ('20200401', 'YYYYMMDD') )  month 
  FROM dual;

我得到了结果1.451 但我希望结果是 1.5

这是文档:

https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/MONTHS_BETWEEN.html#GUID-E4A1AEC0-F5A0-4703-9528-4703-9528-

注意 function 规范。 除非月份中的日期相同,或者两个日期都是月底日期,否则计算是按每个月有 31 天进行的

所以,在你的情况下,结果是 1 + 14/31 = 1.45161....

无论如何,您的示例显示 1 个月零 14 天; 不清楚为什么您期望 1.5 - 即使您期望计算假设每个月有 30 天。 (五月有 31 天,)您可能将“日期”视为单独的实体。 并认为这两个日期都包含在间隔中; 这不是日期算术的工作方式,“2020 年 5 月 15 日”是指当天开始的午夜,因此计算不包括最后日期的 24 小时。 2020 年 5 月 15 日。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM