计算查询中的DateTime差异

时间:2015-02-04 16:05:57

标签: sql oracle datetime

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

3 个答案:

答案 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
     ;