Oracle MONTHS_BETWEEN返回一个整数

时间:2014-04-11 12:41:39

标签: vb.net oracle

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

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

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

它返回1.83870967741935,我希望2

如何让我的查询返回MONTHSTOEXPIRE值的最接近的整数?

3 个答案:

答案 0 :(得分:2)

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

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

它适用于我的Oracle。

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

答案 1 :(得分:1)

你可以尝试

  • Math.Round

      

    将值舍入为最接近的整数或指定的小数位数。

  • Math.Ceiling

      

    返回大于或等于指定数字的最小整数。

  • Math.Floor

      

    返回小于或等于指定数字的最大整数。

答案 2 :(得分:0)

像这样使用 轮(MONTHS_BETWEEN(' 2014年6月29日',TRUNC(SYSDATE)))MONTHSTOEXPIRE 由于您无法始终获得确切的月份计数,因此您可以获得精确值并将其四舍五入到最接近的整数