小编nee*_*ase的帖子

在Oracle中使用"Interval",其中"Interval"是表中的值

我需要使用以下数据列在Oracle DB中生成值列表:

ITEM_TYPE             VARCHAR2(20)
ITEM_LAST_UPDATED     DATE
ITEM_UPDATE_TOLERANCE NUMBER(1)
Run Code Online (Sandbox Code Playgroud)

应该发送到控制台的唯一数据是日期'ITEM_LAST_UPDATED'小于sysdate的项减去其中的整数值'ITEM_UPDATE_TOLERANCE'.

所以,如果我想展示过去一小时的那些,我可以这样做:

select ITEM_TYPE from MY_TABLE
where
to_char(ITEM_LAST_UPDATED, 'DD-MON-YYYY HH24:MI')
<=
to_char(sysdate - interval '1' hour, 'DD-MON-YYYY HH24:MI');
Run Code Online (Sandbox Code Playgroud)

但是,我不需要在上面的语句中使用'1',而是需要用数值替换它ITEM_UPDATE_TOLERANCE.

我尝试了几个不同的版本,但所有错误(如):

select ITEM_TYPE from MY_TABLE
where
to_char(ITEM_LAST_UPDATED, 'DD-MON-YYYY HH24:MI')
<=
to_char(sysdate - interval to_number(ITEM_UPDATE_TOLERANCE) hour, 'DD-MON-YYYY HH24:MI');
Run Code Online (Sandbox Code Playgroud)

sql oracle date intervals

2
推荐指数
2
解决办法
5674
查看次数

标签 统计

date ×1

intervals ×1

oracle ×1

sql ×1