SELECT CORP_NAME,
       START_TIME,
       END_TIME,
       (TO_DATE('2010-6-26 19:12:02', 'yyyy-MM-dd hh24:mi:ss') -
             TO_DATE('2010-6-26 15:37:02', 'yyyy-MM-dd hh24:mi:ss')) * 24 as "TIME_INTERVAL",
       REMARK
  FROM T_B_PHD_RECORD
 WHERE START_TIME >= TO_DATE('2010-6-26 15:37:02', 'yyyy-MM-dd hh24:mi:ss')
   AND END_TIME <= TO_DATE('2010-6-26 19:12:02', 'yyyy-MM-dd hh24:mi:ss')
   AND END_TIME IS NOT NULL;现在我还想在查询中添加一个条件:"TIME_INTERVAL" 就是这一列(比如:间隔时间大于2)的所有记录,麻烦大家帮帮忙哈~

解决方案 »

  1.   

    And (END_TIME-START_TIME)*24>2不知道要的是不是这个效果。
      

  2.   

    我看你上面的sql得出来的time_interval这一列应该是固定了吧,你都写成to_date具体时间了还能等于别结果么那两个是个什么样的字段吧,如果是start_time 和end_time.楼上哥们的可以解决你的问题.也可以用个子查询,  where time_interval > 2
      

  3.   

    time_interval这一列是end_time - start_time,具体时间只是测试下,可以传参。现在我的问题就是:在where后加  AND time_interval > 2总是提示标识符无效。像2楼 hyx972 所说:把这列重写一遍没问题的,我现在就是不想把这么长的字符串再写一遍
      

  4.   

    那就在外面再套一层
    select CORP_NAME,  START_TIME,  END_TIME, TIME_INTERVAL, REMARK from (你的查询) where TIME_INTERVAL > 2
    估计你不喜欢