带有 sysdate 的 oracle 顶点时间戳间隔

Posted

技术标签:

【中文标题】带有 sysdate 的 oracle 顶点时间戳间隔【英文标题】:oracle apex timestamp interval with sysdate 【发布时间】:2020-06-17 06:58:35 【问题描述】:

嗨,我有一个问题,我想从表中删除过期的条目,所以我使用了 SQL where 子句 这是我的 SQL 代码

select ROWID,
       FOOD_RECEIVED_UID,
       USER_NAME,
       ITEM_TYPE,
       ITEM,
       QUANTITY,
       EXPIRY_DATE,
       CREATED_ON,
       CREATED_BY,
       UPDATED_ON,
       UPDATED_BY,
       USER_UID
  from FOOD_RECEIVED
   WHERE (ITEM_TYPE = :P9_ITEM_TYPE OR :P9_ITEM_TYPE IS NULL)and EXPIRY_DATE > SYSTIMESTAMP

这是照片副本:

谁能帮我解决这个问题...

【问题讨论】:

请详细说明:您有错误信息吗?什么是预期的输出 ?请避免发布图片,而只发布计划文本。 零错误,我希望在报告中显示带有 where 子句的过期食品不应显示在报告中 【参考方案1】:

不是expiry_date已经过期的产品吗? <,不是>

and EXPIRY_DATE < SYSTIMESTAMP

不过,我怀疑expiry_date 是一个时间戳;看起来更像date,所以:

and EXPIRY_DATE < SYSDATE

【讨论】:

我使用 '''SYSTIMESTAMP''' 的原因是 expired_date 表示的时间我已经改变了甲酸盐你能帮我解决这个问题吗 在 Oracle DATE 数据类型中包含日期 时间,所以 - SYSDATE 它是。我不知道你想让我“修复”什么。如果您发布了测试用例(CREATE TABLE、INSERT INTO 和预期输出),那么我/我们可以提供进一步的帮助。在那之前,我会说我已经写的符合你的要求。【参考方案2】:

我不太清楚你在寻找什么样的解决方案。

    您想要一个一次性删除所有过期项目的 SQL 语句吗?

    在这种情况下,将选择语句转换为删除语句delete from FOOD_RECEIVED where ....

    您希望报告中的删除按钮单独删除它们吗?

    您是否尝试使用 APEX 向导创建页面? 创建页面 -> 报告 -> 带表单报告。使用它,APEX 将为您创建一个模式对话框,您可以在其中删除各个项目。

希望对你有所帮助。

【讨论】:

如果我使用 delete,我不希望过期的项目显示在该报告中,然后它将从表中删除,所以你能建议我一个更好的选择 在上面的结果中,报告没有显示过期的项目。您看到的产品在查询执行时有一个未来的到期日期。正是你所说的“想要的”..

以上是关于带有 sysdate 的 oracle 顶点时间戳间隔的主要内容,如果未能解决你的问题,请参考以下文章

Oracle - 从时间戳值导出分钟

Oracle:类似于 sysdate 但只返回时间和日期

怎样手动插入时间 oracle

如何在Oracle中将时间戳转化为日期格式

怎么在Oracle中将时间戳转化为日期格式

如何使用 sysdate 更新日期列,包括动态 sql 中的时间戳