[英]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
这是文档:
注意 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.