为什么 Oracle Apex Date picker range 不显示 1 个月范围内的数据?

Why Oracle Apex Date picker range does not show data in the range of 1 month?

在我的 Oracle Apex 应用程序中,我创建了一个日期选择器范围来查看选定时间段内仪表板上的统计信息。

可以看到3月18日到4月18日没有数据显示,而系统中有8日、9日、10日、11日、12日、14日、15日、16日创建的数据,和 4 月 17 日。 此外,在其他一些范围内,图表统计数据的表示不正确。

用于图表的 SQL 查询:

SELECT 'Working Equipment' label, count(TAG_IDENTIFIER) FROM   LOGS_HISTORY
WHERE  MODE__ = 'Working'
AND    TO_CHAR(TIME_, 'DD-MON-YYYY HH:MIPM') between :P16_DATE_FROM and :P16_DATE_TO
union all
SELECT 'Standby Equipment' label, count(TAG_IDENTIFIER) FROM   LOGS_HISTORY
WHERE  MODE__ = 'Standby'
AND    TO_CHAR(TIME_, 'DD-MON-YYYY HH:MIPM') between :P16_DATE_FROM and :P16_DATE_TO

在这里你可以看到范围是基于日期选择器页面项目之间的范围

我还创建了基于页面项目刷新图表的动态操作。

值得一提的是,该图表适用于其他一些范围:

请帮助我解决这个问题。

使用“转换”功能的决定是正确的;但是,您应该将它移到 右边 一侧,因为 - 如果 TIME_ 列上有索引,应用 TO_CHAR 将导致不使用索引.

所以:

select ...
from ...
where time_ beween to_date(:P16_DATE_FROM, 'dd-mon-yyyy hh:mi pm', 'nls_date_language=english')
               and to_date(:P16_DATE_TO  , 'dd-mon-yyyy hh:mi pm', 'nls_date_language=english')
        

我使用了附加参数 - nls_date_language,因为如果 NLS 设置未正确设置,月份 names 可能会很棘手。只使用数字更安全。


此外,您是否确保在 Apex 图表之外(例如 SQL 开发人员)执行的查询确实使用了 returns 一些数据?我知道你数据存在,但是 - 你真的检查过了吗?