获取分钟和天之间数据的SQL查询

获取分钟和天之间数据的SQL查询,sql,oracle,Sql,Oracle,我有要求,这是一份报告 需求描述: 需要来自处于打开状态超过30分钟的表的数据 那么上述要求可以从 select * from xyz where status = 'OPEN' and last_update_date <= sysdate - (30/1440) --30 is minutes and its a parameter 选择* 来自xyz 其中status='OPEN' 和last_update_date只需使用或表达式检查参数是否为空: select * fr

我有要求,这是一份报告

需求描述:

需要来自处于打开状态超过30分钟的表的数据

那么上述要求可以从

select * 
from xyz 
where status = 'OPEN' 
and last_update_date <= sysdate - (30/1440) --30 is minutes and its a parameter
选择*
来自xyz
其中status='OPEN'

和last_update_date只需使用或表达式检查参数是否为空:

select * 
from xyz 
where status = 'OPEN' 
and (last_update_date <= sysdate - (:minutes/1440) or :minutes is null)
and (trunc(last_update_date) >= trunc(sysdate - :days) or :days is null)
选择*
来自xyz
其中status='OPEN'
和(上次更新日期=trunc(sysdate-:days)或:days为空)

在检查参数是否为空时,只需使用或表达式:

select * 
from xyz 
where status = 'OPEN' 
and (last_update_date <= sysdate - (:minutes/1440) or :minutes is null)
and (trunc(last_update_date) >= trunc(sysdate - :days) or :days is null)
选择*
来自xyz
其中status='OPEN'
和(上次更新日期=trunc(sysdate-:days)或:days为空)

在检查参数是否为空时,只需使用或表达式:

select * 
from xyz 
where status = 'OPEN' 
and (last_update_date <= sysdate - (:minutes/1440) or :minutes is null)
and (trunc(last_update_date) >= trunc(sysdate - :days) or :days is null)
选择*
来自xyz
其中status='OPEN'
和(上次更新日期=trunc(sysdate-:days)或:days为空)

在检查参数是否为空时,只需使用或表达式:

select * 
from xyz 
where status = 'OPEN' 
and (last_update_date <= sysdate - (:minutes/1440) or :minutes is null)
and (trunc(last_update_date) >= trunc(sysdate - :days) or :days is null)
选择*
来自xyz
其中status='OPEN'
和(上次更新日期=trunc(sysdate-:days)或:days为空)
此查询未经测试。 请告诉我,此查询返回的是我遗漏的任何错误或问题

select 
    * 
from 
    xyz 
where 
    status = 'OPEN' 
    and
    last_update_date <= CASE WHEN @No_Of_Days <> 0 THEN sysdate - @No_Of_Days ELSE NULL END
    and     
    minutes(last_update_date) <=  SYSDATE - 30/1440 
选择
* 
从…起
xyz
哪里
状态='打开'
和
上次更新日期未测试此查询。
请告诉我,此查询返回的是我遗漏的任何错误或问题

select 
    * 
from 
    xyz 
where 
    status = 'OPEN' 
    and
    last_update_date <= CASE WHEN @No_Of_Days <> 0 THEN sysdate - @No_Of_Days ELSE NULL END
    and     
    minutes(last_update_date) <=  SYSDATE - 30/1440 
选择
* 
从…起
xyz
哪里
状态='打开'
和
上次更新日期未测试此查询。
请告诉我,此查询返回的是我遗漏的任何错误或问题

select 
    * 
from 
    xyz 
where 
    status = 'OPEN' 
    and
    last_update_date <= CASE WHEN @No_Of_Days <> 0 THEN sysdate - @No_Of_Days ELSE NULL END
    and     
    minutes(last_update_date) <=  SYSDATE - 30/1440 
选择
* 
从…起
xyz
哪里
状态='打开'
和
上次更新日期未测试此查询。
请告诉我,此查询返回的是我遗漏的任何错误或问题

select 
    * 
from 
    xyz 
where 
    status = 'OPEN' 
    and
    last_update_date <= CASE WHEN @No_Of_Days <> 0 THEN sysdate - @No_Of_Days ELSE NULL END
    and     
    minutes(last_update_date) <=  SYSDATE - 30/1440 
选择
* 
从…起
xyz
哪里
状态='打开'
和


上次更新日期如果您将提供假设10天,则查询需要返回最近10天的数据&如果您未提供任何日期,则它应仅显示最近30分钟的数据是否正确?正确。。。如果我们不同时提供这两个参数,那么只需返回所有处于打开状态的记录。您是只提供天数还是提供RECORD必须显示参数的日期。。假设10如果您将提供假设10天,那么查询需要返回最后10天的数据&如果您没有提供任何一天,那么它应该只显示最后30分钟的数据。我是否正确?正确。。。如果我们不同时提供这两个参数,那么只需返回所有处于打开状态的记录。您是只提供天数还是提供RECORD必须显示参数的日期。。假设10如果您将提供假设10天,那么查询需要返回最后10天的数据&如果您没有提供任何一天,那么它应该只显示最后30分钟的数据。我是否正确?正确。。。如果我们不同时提供这两个参数,那么只需返回所有处于打开状态的记录。您是只提供天数还是提供RECORD必须显示参数的日期。。假设10如果您将提供假设10天,那么查询需要返回最后10天的数据&如果您没有提供任何一天,那么它应该只显示最后30分钟的数据。我是否正确?正确。。。如果我们不同时提供这两个参数,那么只需返回所有处于打开状态的记录。您是只提供天数还是提供RECORD必须显示参数的日期。。说10@user3211648如果queryHardik出现任何问题,请回复。。实际上我正在使用oracledb。DATEADD()似乎是SQL服务器。。你能核实一下吗once@user3211648请检查我是否编辑了solution@user3211648如果queryHardik出现任何问题,请回复。。实际上我正在使用oracledb。DATEADD()似乎是SQL服务器。。你能核实一下吗once@user3211648请检查我是否编辑了solution@user3211648如果queryHardik出现任何问题,请回复。。实际上我正在使用oracledb。DATEADD()似乎是SQL服务器。。你能核实一下吗once@user3211648请检查我是否编辑了solution@user3211648如果queryHardik出现任何问题,请回复。。实际上我正在使用oracledb。DATEADD()似乎是SQL服务器。。你能核实一下吗once@user3211648请检查我是否已编辑解决方案