sql - 如何在plsql中搜索30分钟间隔?
问题描述
我想编写一个看起来特定表的 PL/SQL 作业,并将一些适合某些条件的特定条目插入到另一个表中。
在特定列中,我的意思是,在状态列中可能有“正在进行”。我想搜索这些包含“正在进行”条目的列,sysdate 之间的时间间隔最多为 1 小时。
我有这个代码,
begin
SYS.DBMS_JOB.CHANGE
( job => 121313
,what => q'#
DECLARE
v_say NUMBER;
BEGIN
select rowid, a.*
from project_situation a
WHERE a.STATUS like '%ONGOING%'
and (a.CREATION_DATE) >= '?????'
order by a.creation_date desc;
COMMIT;
END;
#'
,next_date => TRUNC(SYSDATE + 1) + 7/24
,interval => 'TRUNC(SYSDATE + 1) + 7/24'
);
commit;
end;
/
表中可能有很多条目。我想获取创建时间大于 1 小时的条目。创建时间格式为 '22/09/2018 11:52:20'
我也想每 30 分钟运行一次这项工作。
解决方案
为了获得更好的性能,请使用以下代码计算 1 小时
PERSISTED_DATE<SYSDATE-60/1440.
其中 PERSISTED_DATE 是您的日期列 60 是分钟数。60/1440 是 1 小时时间。
对于您的示例,假设您已经给出了表和列以下代码应该获取您所需的结果
select rowid, a.* from project_situation a
WHERE a.STATUS like '%ONGOING%'
and a.CREATION_DATE< SYSDATE-60/1440';
如果您有固定状态而不是使用 = 而不是 like'%status%' 运算符。
推荐阅读
- python - 为什么我的基本打印语句有效,但我的 f-string 版本会产生语法错误?
- flutter - 颤动的网络替代/减少canvaskit.wasm的大小
- c# - 通过 RawPrint Nuget 错误托盘在 C# 中以编程方式打印 PDF
- python - 给定总节点数和每个节点的度数,是否可以构建图?
- database - 我需要使用 iD 作为参数从 db 返回结果
- javascript - 将 VueJS 应用程序部署到具有可执行文件的文件夹中
- javascript - 使用 for 循环 JS 过滤
- c# - 当游戏对象旋转时计算圆上的角点
- c# - 无法在 Specflow 文件中将类型“int”转换为“string”
- javascript - Javascript在嵌套对象中查找