Oracle apex APEX 5.0中使用日期选择器的动态操作

Oracle apex APEX 5.0中使用日期选择器的动态操作,oracle-apex,oracle-apex-5,Oracle Apex,Oracle Apex 5,我希望使用APEX 5.0中的日期选择器使用动态操作,以便在选择start_date和end_date时,交互式报告应显示所选日期范围的数据 我首先在APEX中创建了一个交互式报告,然后创建了一个带有日期选择器的页面。在我的数据库表中,我有一个列名time\u stamp,它的数据类型为varchar2,日期格式为YYYY-MM-DD-HH24:MI:SS 我对交互式报告的查询如下所示: Select * from table1 where time_stamp between to_char(

我希望使用APEX 5.0中的日期选择器使用动态操作,以便在选择
start_date
end_date
时,交互式报告应显示所选日期范围的数据

我首先在APEX中创建了一个交互式报告,然后创建了一个带有日期选择器的页面。在我的数据库表中,我有一个列名
time\u stamp
,它的数据类型为
varchar2
,日期格式为
YYYY-MM-DD-HH24:MI:SS

我对交互式报告的查询如下所示:

Select * from table1 where time_stamp between to_char(to_date(:p1_item,'YYYY-MM-DD-HH24:MI:SS'),'DD-MM-YY') and to_char(to_date(:p2_item,'YYYY-MM-DD-HH24:MI:SS'),'DD-MM-YY')

(其中,
p1\u项
p2\u项
是日期选择器的页面项),日期选择器的“格式掩码”属性已设置为
DD-MM-YY
。现在,我需要定义一个动态操作,根据所选的
start\u日期
end\u日期
执行交互式报表SQL查询。我需要进一步了解创建此类动态操作的步骤,并查找实现此操作需要设置哪些属性的详细步骤。

要开始,请将交互式报告查询更改为:

          Select * from table1 
          where  
          (:p1_item is null and :p2_item is null) or time_stamp
          between to_date(:p1_item,'DD-MM-YY') and 
          to_date(:p2_item,'DD-MM-YY')

然后在p2_项下创建一个动态动作。将其
事件
设置为“更改”,然后将其
操作设置为“提交页面”

获取页面上要加载的数据的更好方法是在每个日期选择器下创建动态操作。对于每个要更改的日期选择器动态动作集事件;将其设置为true操作以执行Pl/SQL代码并创建另一个true操作并将其设置为刷新

对于放入其代码中的Execute Pl/SQL代码:

BEGIN
  null;
END;
并将页面项设置为提交到:p1_项(和:P2_项对应的动态操作)

对于刷新操作,将选择类型设置为“区域”,然后将区域设置为交互式报告

您的问题应该如@Vance所说:

  Select * from table1 
  where  
  (:p1_item is null and :p2_item is null) or time_stamp
  between to_date(:p1_item,'DD-MM-YY') and 
  to_date(:p2_item,'DD-MM-YY')

这样做将有利于您的页面变得更加复杂,并且您可能不希望从单一日期选择提交整个页面。它也会稍微快一点,因为您不必等待整个页面重新加载。

您好,请澄清,您是否正在尝试创建一个基于上述查询显示数据的交互式报告?是的,我正在尝试基于日期范围显示一个交互式报告。我完全按照您所说的做了,但在从日期选择器选择开始日期和结束日期时,它不显示任何记录。我是否需要为交互式报告设置任何其他属性,如格式掩码、计算后计算等?哦,对了@Mukul Sharma。我已根据我的答案更新了您的交互式报告的sql源。您还必须将日期选择器的
格式掩码设置为
DD-MM-YY
,这仍然没有帮助。表中的“我的时间戳”列是varchar2数据类型-是否不需要将varchar格式转换为日期格式?在计算后设置什么?您不必在
计算后设置任何内容。您必须将时间戳列更改为日期类型,它才能工作。它不起作用的原因是,当前交互式报表sql源的
between
运算符将其计算为两个字符串,而不是两个日期。我在sql查询中使用日期转换作为时间戳,而不是将数据类型更改为日期?