BI Publisher - 日期之间的参数

时间:2016-01-28 09:02:31

标签: sql date parameters bi-publisher

在BI-PUBLISHER中,我有两个STARTDATEENDDATE参数。

ACTIVE_DATE中有一个字段可用于上述参数。

我在查询中使用以下条件:

trunc(active_date) between NVL(:P_Active_Date, trunc(active_date))
and NVL(:P_Close_Date, trunc(active_date)

如果两个参数均为空,则应选择所有日期范围。

但是当我应用这些参数时,它并没有向我显示正确的结果。 即使我选择了这两个参数,它仍然没有显示正确的结果。

应该怎么做?

2 个答案:

答案 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。