我正在修改一个Oracle查询,我需要从查询日期和分钟到30分钟前找到的信息。例如,我在16:35进行了查询,所以我需要它向我显示从16:05到16:35找到的信息。我做了类似的事情,但我没有得到我需要的结果。此外,我如何使它找到所有加载了当前日期?这就是我所做的,没有结果
AND FV.FEC_CAR = dateadd(minute,-30,getdate()) ORDER BY F.N_FILE DESC
提前谢谢你
dateadd
和getdate
在Oracle的SQL方言中无效。这看起来像SQL Server的语法,但它可能工作在其他一些数据库以及。
在Oracle中,您将执行
fv.fec_car > sysdate - interval '30' minute
或
fv.fec_car > sysdate - 30/24/60
我个人觉得interval
的语法要清晰得多
就我的理解和解释而言,在对表进行一些修改之前,您需要查看过去某个时刻的数据。这种情况下,
SELECT *
FROM tab AS OF TIMESTAMP SYSTIMESTAMP - INTERVAL '30' MINUTE
如果undo_retention,可能是用来查看修改前半小时的值数据库参数的值足够大(但不要忘记即使值足够大也不保证返回结果)