>我有包含列 id、基准、值的表 基准面为日期类型。 在此表中,我每 15 分钟都有一次值。
现在我正在生成报告,其中 用户选择时间间隔,如 15 分钟 30 分钟 1 小时 1 天 如何动态生成预言机查询以根据所选时间间隔获取数据。
可以使用NUMTODSINTERVAL
函数指定间隔。例如,如果您想获取最多 15 分钟前的所有内容:
SELECT *
FROM your_table
WHERE DATUM >= SYSDATE - NUMTODSINTERVAL( 15, 'MINUTE' )
或者,如果要将其限制为不包含将来的值:
SELECT *
FROM your_table
WHERE DATUM BETWEEN SYSDATE - NUMTODSINTERVAL( 15, 'MINUTE' )
AND SYSDATE
您可以将其更改为将间隔的数量和单位作为绑定参数,您可以将其传递到查询中:
SELECT *
FROM your_table
WHERE DATUM >= SYSDATE - NUMTODSINTERVAL( :amount, :units )
哪里:
:amount
是一个数字;和:units
是字符串之一:SECOND
、MINUTE
、HOUR
或DAY