我有一个表,其中我有START_DATE列,它是DATE数据类型。我想获得比当前日期时间过去30分钟更早的所有SUBSCRIPTION_ID。 这是我的疑问:
select WF.SUBSCRIPTION_ID,WF.START_DATE
from WF_WORKFLOW
where WF.NAME='SIGNUP_MOBILE_PRE_PAID'
and WF.STATUS_ID=0
答案 0 :(得分:2)
您可以使用其他条件修改where
子句:
start_date < sysdate - 30 / (24 * 60)
Oracle将日期解释为天数值。所以,30分钟是30 / (24 * 60)
。
答案 1 :(得分:1)
查看INTERVAL
所以这可行,
select WF.SUBSCRIPTION_ID,WF.START_DATE
from WF_WORKFLOW
where WF.NAME='SIGNUP_MOBILE_PRE_PAID'
and WF.STATUS_ID=0 and WF.START_DATE < sysdate - INTERVAL '30' minute(1)
答案 2 :(得分:0)
尝试
select WF.SUBSCRIPTION_ID
, WF.START_DATE
from WF_WORKFLOW
where WF.NAME='SIGNUP_MOBILE_PRE_PAID'
and WF.STATUS_ID=0
and WF.START_DATE + TO_DSINTERVAL('000 00:30:00') < SYSDATE
;