我正在编写以下查询以获取小时工作间隔的记录
SELECT *
FROM gw_lob_store
WHERE created_ts<(round(((sysdate-interval '30' MINUTE) - to_date('19700101 000000', 'YYYYMMDD HH24MISS'))*86400));
这里分钟&#39; 30&#39;在上面的查询中我想从另一个表列(在查询下面)获取并分配它,请让我知道如何做到这一点
select prop_value
from gw_prop_config
where prop_name='lobStoreJobTime'
其中prop_value的值为&#39; 30&#39;我想分配
注意:这两个表没有任何匹配的列。
答案 0 :(得分:2)
我认为你不能用一个变量替换INTERVAL表达式中的文字“30”。
但是,由于SYSDATE是DATE而不是TIMESTAMP,sysdate-interval '30' MINUTE
与sysdate-30/60/24
相同,因此您可以重写为:
SELECT *
FROM gw_lob_store
WHERE created_ts < round(((sysdate-(select to_number(prop_value)/60/24
from gw_prop_config
where prop_name='lobStoreJobTime'
)
) - date '1970-01-01'
)*86400
)
答案 1 :(得分:1)
主要有两种选择:
1)30分钟的间隔等于30分钟的间隔:
sysdate - (interval '1' minute * prop_value)
2)根据数字计算分钟数:
sysdate - numtodsinterval(prop_value, 'minute')