首页 > 解决方案 > 将一个月添加到一年中的最后一个月逻辑

问题描述

报表运行时手动输入报表期间。我已经设置了这样的参数:

AND (TRUNC(COJ.DATE_ENTERED) >= TO_DATE('&DATE_FROM', 'MM/YYYY') OR '&DATE_FROM' IS NULL)
AND (TRUNC(COJ.DATE_ENTERED) <= TO_DATE('&DATE_TO', 'MM/YYYY') OR '&DATE_TO' IS NULL)

例如,这些日期将输入为 01/2015 和 12/2019。然后返回这些日期之间的数据。但是,我需要添加这样的逻辑,即如果它是一年中的最后一个月,那么它会增加一个月并进入下一年。示例 - 12/2019 将更改为 01/2020。任何人都可以帮忙吗?

DATE_ENTERED 是与每条记录关联的数据。有什么问题随便问

标签: sqloracle

解决方案


例如,如果日期输入为,'01/2015'并且如果 2017 年 8 月的所有数据必须包含在报告中,则该子句应包括'08/2017'where

...
and (COJ.DATE_ENTERED >= TO_DATE('&DATE_FROM', 'MM/YYYY') OR '&DATE_FROM' IS NULL)
and (COJ.DATE_ENTERED <  ADD_MONTHS(TO_DATE('&DATE_TO', 'MM/YYYY'), 1) OR '&DATE_TO' IS NULL)

这应该与“十二月”或诸如此类的无关。此外,无需截断DATE_ENTERED


推荐阅读