计算查询中的日期时间差异

Calculate DateTime difference in query

我有一个 table,其中 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 

您可以用另一个条件修改 where 子句:

start_date < sysdate - 30 / (24 * 60)

Oracle 将日期解释为天数值。所以,30 分钟是 30 / (24 * 60).

尝试

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
     ;

看看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)