我的表包含列id,Datum,Value 基准是日期类型。 在这张表中,我每15分钟就有一次值。
现在我正在生成报告 用户选择时间间隔为15分钟30分钟1小时1天 如何动态生成oracle查询以按照选定的时间间隔获取数据。
答案 0 :(得分:0)
您可以使用NUMTODSINTERVAL
function指定间隔。例如,如果您想要从最多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