Oracle MONTHS_BETWEEN返回一个整数

问题描述 投票:0回答:3

我有一个Oracle Select语句,在其中我有以下内容:

MONTHS_BETWEEN(CON.F_CON_END_DATE, TRUNC(SYSDATE)) MONTHSTOEXPIRE,

该代码的目的是让我获得两个日期之间的月数。它确实有效,但它以一种破坏我的VB.NET代码的方式返回它们。有关溢出异常的事情!

它返回1.83870967741935,我期待一个2

我该怎么做才能使我的查询返回MONTHSTOEXPIRE值的最接近的整数?

vb.net oracle
3个回答
2
投票

我猜你只需要使用round()函数?

ROUND(MONTHS_BETWEEN(CON.F_CON_END_DATE, TRUNC(SYSDATE)), 0) MONTHSTOEXPIRE

它适用于我的Oracle。

让我知道它是否适用于你的!


1
投票

你可以试试

  • Math.Round, 将值舍入为最接近的整数或指定的小数位数。
  • Math.Ceiling 返回大于或等于指定数字的最小整数。
  • Math.Floor。 返回小于或等于指定数字的最大整数。

0
投票

使用像这一轮(MONTHS_BETWEEN('29 -Jun-2014',TRUNC(SYSDATE)))MONTHSTOEXPIRE,因为你不能总是得到确切的月计数,你可以得到确切的值并将其四舍五入到最接近的整数

© www.soinside.com 2019 - 2024. All rights reserved.