如何动态生成oracle查询以按照选定的时间间隔获取数据

时间:2018-05-10 07:30:02

标签: oracle

我的表包含列id,Datum,Value 基准是日期类型。 在这张表中,我每15分钟就有一次值。

现在我正在生成报告 用户选择时间间隔为15分钟30分钟1小时1天 如何动态生成oracle查询以按照选定的时间间隔获取数据。

1 个答案:

答案 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是其中一个字符串:SECONDMINUTEHOURDAY