ORACLE查询查询记录是否存在-每小时
ORACLE query check record exist or not - hourly
示例 table 数据如下:
FORMID | QUANTITY | DATEADDED
1 | 150 | 4/12/2017 2:33:27 PM
2 | 100 | 4/12/2017 3:15:10 PM
我希望查询根据当前时间每小时检查数据是否存在。
示例
Current time: 18:00
所以当查询检查数据时,它应该没有数据,因为我们看到最后的数据是在 3:15:10 下午,当前时间是 18:00(超过 2 小时前)。
我不知道该怎么做,
SELECT * FROM TBQUANTITY WHERE...
这将获取 DATEADDED
列从现在(使用服务器时间)到一小时前的所有行。
SELECT *
FROM TBQUANTITY
WHERE dateadded BETWEEN SYSDATE - INTERVAL '1' HOUR AND SYSDATE
对于查看是否有一些记录的简单临时查询,请使用其他答案中建议的 SYSDATE
。
如果您的目标是获取所有记录并且每条记录只处理一次,则应更加小心。
您可以每小时安排一次查询select查询上一小时的数据,例如
select * from T where DATEADDED > trunc(sysdate,'HH') -1/24
and DATEADDED <= trunc(sysdate,'HH')
请注意,此查询 select 上一小时的数据(在 HH 上截断 )
例如从 12-04-2017 17:00:00 到 12-04-2017 18:00:00 并且您使用半开间隔 而不是 BETWEEN 这将 select 记录整整一个小时的时间戳两次。
示例 table 数据如下:
FORMID | QUANTITY | DATEADDED
1 | 150 | 4/12/2017 2:33:27 PM
2 | 100 | 4/12/2017 3:15:10 PM
我希望查询根据当前时间每小时检查数据是否存在。
示例
Current time: 18:00
所以当查询检查数据时,它应该没有数据,因为我们看到最后的数据是在 3:15:10 下午,当前时间是 18:00(超过 2 小时前)。
我不知道该怎么做,
SELECT * FROM TBQUANTITY WHERE...
这将获取 DATEADDED
列从现在(使用服务器时间)到一小时前的所有行。
SELECT *
FROM TBQUANTITY
WHERE dateadded BETWEEN SYSDATE - INTERVAL '1' HOUR AND SYSDATE
对于查看是否有一些记录的简单临时查询,请使用其他答案中建议的 SYSDATE
。
如果您的目标是获取所有记录并且每条记录只处理一次,则应更加小心。
您可以每小时安排一次查询select查询上一小时的数据,例如
select * from T where DATEADDED > trunc(sysdate,'HH') -1/24
and DATEADDED <= trunc(sysdate,'HH')
请注意,此查询 select 上一小时的数据(在 HH 上截断 ) 例如从 12-04-2017 17:00:00 到 12-04-2017 18:00:00 并且您使用半开间隔 而不是 BETWEEN 这将 select 记录整整一个小时的时间戳两次。