sql - 将一个月添加到一年中的最后一个月逻辑
问题描述
报表运行时手动输入报表期间。我已经设置了这样的参数:
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 是与每条记录关联的数据。有什么问题随便问
解决方案
例如,如果日期输入为,'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
。
推荐阅读
- docker - Using Nginx reverse proxy with Docker
- excel - 找不到运行时错误-2147221080 (800401a8)
- swift - How to multiply, add etc... SignedNumber with Double in Swift?
- sql - 每年在 Oracle 中重置序列
- java - List of List String in java
- python - Override both getter and setter of a property
- javascript - Vue js - 在 vue 项目中集成 html 引导模板的最简单方法
- php - 从函数调用可验证和对象到另一个
- bash - shell forcing demonized program to start without output
- amazon-web-services - AWS google api authentication