我有一个Oracle Select
语句,在其中我有以下内容:
MONTHS_BETWEEN(CON.F_CON_END_DATE, TRUNC(SYSDATE)) MONTHSTOEXPIRE,
该代码的目的是让我获得两个日期之间的月数。它确实有效,但它以一种破坏我的VB.NET代码的方式返回它们。有关溢出异常的事情!
它返回1.83870967741935
,我希望2
?
如何让我的查询返回MONTHSTOEXPIRE
值的最接近的整数?
答案 0 :(得分:2)
我猜你只需要使用round()函数?
ROUND(MONTHS_BETWEEN(CON.F_CON_END_DATE, TRUNC(SYSDATE)), 0) MONTHSTOEXPIRE
它适用于我的Oracle。
让我知道它是否适用于你的!
答案 1 :(得分:1)
你可以尝试
将值舍入为最接近的整数或指定的小数位数。
返回大于或等于指定数字的最小整数。
返回小于或等于指定数字的最大整数。
答案 2 :(得分:0)
像这样使用 轮(MONTHS_BETWEEN(' 2014年6月29日',TRUNC(SYSDATE)))MONTHSTOEXPIRE 由于您无法始终获得确切的月份计数,因此您可以获得精确值并将其四舍五入到最接近的整数