You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在现有SQL中添加条件提取最近一小时内创建或修改的记录

解决方案

你只需要在原SQL的WHERE子句中新增一行时间判断条件即可,修改后的完整代码如下:

SELECT
    CODE_ART_COM,
    LIB_ART_COM,
    TO_CHAR(
        CAST(
            COALESCE(GREATEST(DAT_CRE, DAT_MOD), DAT_CRE) AS TIMESTAMP
        ),
        'YYYY-MM-DD HH24:MI:SSxFF'
    ) TIMESTAMP
FROM
    ART_COM
WHERE
    ETAT = 0
    AND CODE_ART_COM IN (
        SELECT
            CODE_ART_COM
        FROM
            PROD_COM
        WHERE
            ETAT = 0
    )
    -- 新增的上一小时时间过滤条件
    AND COALESCE(GREATEST(DAT_CRE, DAT_MOD), DAT_CRE) >= SYSDATE - 1/24

条件说明:

  • 先通过GREATEST(DAT_CRE, DAT_MOD)取创建时间、修改时间中更晚的时间点,若DAT_MOD为null(从未修改过),GREATEST会返回null,再通过外层的COALESCE函数兜底返回创建时间DAT_CRE,最终得到该记录最后一次被操作的时间
  • Oracle中SYSDATE代表当前系统时间,日期类型做数值运算时1代表1天,因此SYSDATE - 1/24就代表当前时间往前推1小时的时间点,过滤出最后操作时间大于等于该时间点的记录,就是你需要的上一小时内创建/修改的记录

内容的提问来源于stack exchange,提问作者user12393685

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:54:00