Oracle apex 使用来自";的静态值筛选sql查询结果;选择列表";Oracle APEX 5.0中的页面项

Oracle apex 使用来自";的静态值筛选sql查询结果;选择列表";Oracle APEX 5.0中的页面项,oracle-apex,oracle-apex-5,Oracle Apex,Oracle Apex 5,我正在寻找一种使用“选择列表”页面项中的静态值筛选和显示记录的方法。我使用以下查询在APEX 5.0中创建了条形图: select to_char(to_date(time_stamp,'YYYY-MM-DD-HH24:MI:SS'),'YYYY-MM-DD-HH24:MI:SS') as label, col2 as value from table1 where :P5_NEW_1 = col1 ; 表1的时间戳列在我的数据库中是数据类型varchar2,包含格式为YYYY-MM-DD

我正在寻找一种使用“选择列表”页面项中的静态值筛选和显示记录的方法。我使用以下查询在APEX 5.0中创建了条形图:

  select to_char(to_date(time_stamp,'YYYY-MM-DD-HH24:MI:SS'),'YYYY-MM-DD-HH24:MI:SS') as label, col2 as value from table1 where :P5_NEW_1 = col1 ;
表1的时间戳列在我的数据库中是数据类型
varchar2
,包含格式为
YYYY-MM-DD-HH24:MI:SS的日期值

e、 例如,下面的值存储在
时间戳
列中

2015-08-26-10:17:15
2015-08-26-13:17:15
2015-09-17-12:45:54
2015-09-17-14:12:32
2015-10-06-10:01:42
2015-10-06-11:01:28
2015-10-06-05:01:28
等等

我在表单上添加了一个名为“间隔”的“选择列表”项,其中包含一个预先填充的值列表,如
1hr
6hrs

现在,我想修改上述查询,以便发生以下情况:

  • 对于从下拉列表中选择的
    1hr
    值,查询应检查
    时间戳
    列,并显示最近一小时的记录

    (即,从
    到字符(sysdate-1/24,'yyyyy-MM-DD-HH24:MI:SS')到字符(sysdate,'YYYY-MM-DD-HH24:MI:SS')的记录

  • 对于从下拉列表中选择的
    6hrs
    值,查询应显示最近6小时的记录

    (即,范围为
    至字符(sysdate-6/24,'yyyyy-MM-DD-HH24:MI:SS'至字符(sysdate,'YYYY-MM-DD-HH24:MI:SS'
    )的记录)

如何使用页面项选择列表中的静态值修改SQL查询以在当前SQL查询中添加上述条件?

您好,您可以尝试以下操作:

SELECT to_char(to_date(time_stamp,'YYYY-MM-DD-HH24:MI:SS'),'YYYY-MM-DD-HH24:MI:SS') AS label, col2 AS VALUE
FROM table1 
WHERE :P5_NEW_1 = col1 AND
to_date(time_stamp,'yyyy-mm-dd hh24:mi:ss') BETWEEN
       (SYSDATE - (to_number(:SELECT_LIST_ID,'99')/24)) AND SYSDATE;
只需确保静态值的返回值等于
hr
本身

例如,如果静态值等于
1HR
,则返回值应为
1

:SELECT_LIST_ID
是保存间隔静态值的SELECT LIST ID


希望这有帮助。

时间戳可以是(sysdate-1/24),并将取决于正确选择的时间间隔?我想修改sql查询以涵盖上述条件。根据从下拉列表中选择的输入,查询应显示具有这些特定日期范围的记录。我可以问静态值的返回值是多少吗?如果选择了1hr,返回值是多少?P5_NEW的值是多少_1?它对查询的意义是什么?我试图理解您发布的语法。请注意,静态列表包含字母数字值->1小时,6小时。因此,我认为应该使用数字(:SELECT_list_ID,'99')/24))如果我用1hr和6hr替换:SELECT_LIST_ID将不起作用请评论你在帖子中说这些值包含在SELECT LIST中,对吗?因此,SELECT LIST需要值列表,它将是静态或动态的,因为你说这些是静态值,它应该有返回值。如果没有任何返回值,您是如何创建选择列表的?使用选择列表时,无论是静态的还是动态的,请始终记住它需要两个值,显示值和返回值,显示值是用户在选择选项时可以看到的值,而return value是将要提交的值。如果您真的像您所说的那样为选择列表使用静态值,那么您的值列表应该如下所示。静态:1小时;1,6小时;6等。我尝试使用您建议的更改,但是,当我传递静态值时,查询似乎仍然没有过滤结果。由于时间戳是varchar2数据类型,我是否需要将sysdate转换为格式yyy-MM-DD-HH24:MI:SS for between子句?