2016-03-09 33 views
0

目前我获取数据,每1小时:前一天的数据使用Oracle 11g

create_date >= sysdate -1/24 

当进程在午夜12点和日期更改为第二天,反正是有在Oracle将在前一天晚上11点到12点之间输入数据。

感谢

+0

您的查询应该这样做。如果不是,请提供样本数据和期望的结果。 –

回答

0

如果你不运行在午夜SQL那么你可以使用TRUNC函数来完成你想要的是这样的:

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

如果你正在运行的过程中每隔一小时,你会拿起前一小时。例如,如果您在上午12:10运行,那么您的子句将从前一天的下午11:10到当天的上午12点10分收起。

如果你有一定回暖绝对一切,我建议你改变你的逻辑。如果不这样做,你的程序不因某些原因运行,如数据库正在维护中,你会错过一些处理记录

当你的程序启动,捕捉当前的日期/时间,并将其存储在一张桌子里。当您的程序运行时,获取该日期并使用该最后一个值作为起始值:

create_date between last_date and procedure_start_date