在BI-PUBLISHER中,我有两个STARTDATE
和ENDDATE
参数。
表ACTIVE_DATE
中有一个字段可用于上述参数。
我在查询中使用以下条件:
trunc(active_date) between NVL(:P_Active_Date, trunc(active_date))
and NVL(:P_Close_Date, trunc(active_date)
如果两个参数均为空,则应选择所有日期范围。
但是当我应用这些参数时,它并没有向我显示正确的结果。 即使我选择了这两个参数,它仍然没有显示正确的结果。
应该怎么做?
答案 0 :(得分:0)
如果您的日期属性在同一天花了不同的小时,您可以这样做:
where
trunc(active_date)
between to_date( ( NVL(:p_Active_Date, trunc(active_date)) ),'DD/MM/YYYY')
and to_date( (NVL(:p_Close_Date, trunc(active_date) ) ),'DD/MM/YYYY')
我有一个这样的问题,查询没有向我显示我输入的参数范围内的记录。
希望这有帮助。
答案 1 :(得分:0)
尝试
WHERE
(:P_START_DATE IS NULL OR trunc(ACTIVE_DATE) > :P_START_DATE )
AND
(:P_END_DATE IS NULL OR trunc(ACTIVE_DATE) < :P_END_DATE )
通常参数是日期,表格保存开始/结束日期。
WHERE
(:P_ACTIVE_DATE IS NULL
OR ((START_DATE IS NULL OR START_DATE <= :P_ACTIVE_DATE )
AND (END_DATE IS NULL OR END_DATE > :P_ACTIVE_DATE )))
这些都不能满足您的需求,但您可以了解AND / OR如何使用IS NULL。