使用oracle 11g的前一天的数据

时间:2016-03-09 01:21:46

标签: sql performance date plsql oracle11g

目前,我每隔1小时取一次数据:

create_date >= sysdate -1/24

如果流程在凌晨12点运行,并且日期更改为第二天,那么在Oracle中是否可以获取在前一天晚上11点到12点之间输入的数据。

由于

2 个答案:

答案 0 :(得分:0)

如果您没有在午夜运行SQL,那么您可以使用trunc功能来执行您想要的操作:

 create_date between trunc(sysdate) - 1/24 and trunc(sysdate)

答案 1 :(得分:0)

如果您每小时运行一次该过程,您将获取前一个小时。例如,如果您在上午12:10运行,您的子句将从前一天的晚上11:10到当天的上午12:10收集所有内容。

如果你必须确保完全掌握一切,我建议你改变你的逻辑。如果你没有,并且你的程序因某些原因没有运行,例如数据库因维护而关闭,你将错过处理一些记录

当您的程序开始时,捕获当前日期/时间并将其存储在表格中。当您的过程运行时,获取该日期并使用该最后一个值作为起始值:

create_date between last_date and procedure_start_date