是否存在ORACLE查询检查记录 - 每小时

时间:2017-04-12 11:02:10

标签: oracle date-arithmetic

示例我的表格包含以下数据:

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...

2 个答案:

答案 0 :(得分:1)

这将获得DATEADDED列之间的所有行(使用服务器时间)和一小时之前。

SELECT *
FROM   TBQUANTITY
WHERE  dateadded BETWEEN SYSDATE - INTERVAL '1' HOUR AND SYSDATE

答案 1 :(得分:0)

对于一个简单的广告Hoc查询,以查看是否有某些记录使用了{1}},如其他答案所示。

如果您的目标是获取所有记录并仅处理每条记录一次,则应该更加小心。

您可以按小时计划一个查询,选择过去一小时的数据,例如

SYSDATE

请注意,此查询选择上一个完整小时的数据(截断HH ) 例如从12-04-2017 17:00:00到12-04-2017 18:00:00你使用半开的间隔而不是BETWEEN ,它会选择时间戳为一小时的记录两次。