时间字段是time,格式为YYYY-MM-DD HH-MM-SS
n是查询的变量select * from T_T where time >= ...这里...应该是一个time+n的意思,即YYYY-MM-DD (HH+n)-MM-SS请问如何写sql的语句?

解决方案 »

  1.   

    select * from T_T where time >= your_time+n/24;
      

  2.   

    9i以上版本支持:
    select * from T_T where time >= sysdate + interval 'n' hour SQL> select sysdate + interval '2' hour from dual;SYSDATE+INTERVAL'2'
    -------------------
    2005-07-18 15:28:23
      

  3.   

    哦,忘记说明time的类型是String.
      

  4.   

    把time转换成时间在按上面的办法就可以了
    to_date(time,'yyyy-mm-dd hh:mi:ss')
      

  5.   

    select * from T_T where to_date(OPER_TIME1,'yyyy-mm-dd hh:mi:ss') >= to_date(OPER_TIME2,'yyyy-mm-dd hh:mi:ss') + interval '1' hour order by OPER_TIME1 desc
    这样的情况,如果OPER_TIME1的值是'2005-07-19 13:20:25',就会报错误:
    ORA-01849:小时值必须介于1和12之间.如何解决?还有一个问题:我执行  select sysdate + interval '2' hour from dual  结果是
    2005-7-22 17:17:25
    为什么少了一个'0'?
      

  6.   

    ORA-01849:小时值必须介于1和12之间.如何解决?
    这个如何解决啊?
      

  7.   

    自己看了.
    values(to_date('2001-09-08 16:22:30','YYYY-MM-DD HH24MiSS'))