Oracle apex 从列中减去当前日期以显示在oracle apex classic报告中

Oracle apex 从列中减去当前日期以显示在oracle apex classic报告中,oracle-apex,Oracle Apex,我有一个非常简单的问题,但因为我不熟悉SQL或PL/SQL,所以我不知道该怎么做 在我的Oracle APEX应用程序中,通过将本地数据库/SQL查询设置为源,将数据从表加载到经典报表中 我必须从表中存储的2列数据中生成4列。我可以使用以下简单语句加载3而不会出现任何问题: Select TaskName, DueDate, DueDate - 3 as ReminderDate from table_name 第四列应该是“RemainingDays”,它等于DueDate当前日期,我尝试

我有一个非常简单的问题,但因为我不熟悉SQL或PL/SQL,所以我不知道该怎么做

在我的Oracle APEX应用程序中,通过将本地数据库/SQL查询设置为源,将数据从表加载到经典报表中

我必须从表中存储的2列数据中生成4列。我可以使用以下简单语句加载3而不会出现任何问题:

Select TaskName, DueDate, DueDate - 3 as ReminderDate

from table_name

第四列应该是“RemainingDays”,它等于DueDate当前日期,我尝试在上面的语句中编写DueDate-Sys_date和DueDate-current_date来获得第四列,但可能这不是正确的方法,因为我得到的是错误,而不是所有4列。(我用的是基本的excel/dax方式)。有什么帮助吗?

当您从另一个日期减去一个日期时,Oracle会返回一个数字,即两个日期之间的天数

使用SYSDATECURRENT_DATE时需要注意的一点是,如果用户与数据库不在同一时区,则可能会得到不同的结果SYSDATE返回数据库的当前时间CURRENT_DATE返回用户所在时区的当前时间

如果可能的话,尝试在诸如SQLDeveloper之类的工具中构建查询,让它在那里工作,然后在APEX中构建您的经典报告。如果您仍然收到错误,请共享您收到的错误以及您使用的查询

例子 结果
非常感谢您提供的解决方案以及有关sysdate和current_date之间差异的非常有价值的信息(对于像我这样天真的人来说,这非常重要),非常感谢。!!
--Start of sample data
WITH
    t (task_name, due_date)
    AS
        (SELECT 'task1', DATE '2020-9-30' FROM DUAL
         UNION ALL
         SELECT 'task2', DATE '2020-9-28' FROM DUAL)
--End of sample data
SELECT task_name,
       due_date,
       due_date - 3                   AS reminder_date,
       ROUND (due_date - SYSDATE,2)     AS days_remaining
  FROM t;
   TASK_NAME     DUE_DATE    REMINDER_DATE    DAYS_REMAINING
____________ ____________ ________________ _________________
task1        30-SEP-20    27-SEP-20                    13.66
task2        28-SEP-20    25-SEP-20                    11.66