1

我正在寻找一种使用“选择列表”页面项中的静态值过滤和显示记录的方法。我使用以下查询在 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 ;

的 time_stamp 列table1是我数据库中的数据类型varchar2,并包含格式中的日期值YYYY-MM-DD-HH24:MI:SS

例如,下面的值存储在time_stamp列中

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

等等...

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

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

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

    (即,范围内的记录to_char(sysdate - 1/24 ,'YYYY-MM-DD-HH24:MI:SS') to to_char(sysdate ,'YYYY-MM-DD-HH24:MI:SS'

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

    (即,范围内的记录to_char(sysdate - 6/24 ,'YYYY-MM-DD-HH24:MI:SS' to to_char(sysdate ,'YYYY-MM-DD-HH24:MI:SS'))

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

4

1 回答 1

1

你好,你可以试试这个:

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是保存区间静态值的选择列表 ID。

希望这可以帮助。

于 2015-10-06T07:22:06.930 回答