具体情况是:数据库中有一项fm_OpTime的类型是Timestamp,我想根据一个字符串checkPoint:20081022081034001(代表的是2008年10月22日8点10分34秒1毫秒)代表的时间,查出大于checkPoint的所有项。Oracle的查询语句需要如何写才能实现上述目的呢?根据我的理解是需要把checkPoint的字符串转换为timestamp,在和数据库中fm_OpTime项进行比较,但是不太熟悉Oracle中的类型转换,请各位大侠指点。

解决方案 »

  1.   

    WHERE FM_OPTIME >= TO_TIMESTAMP('2008-10-22 08:10:34.1','YYYY-MM-DD HH24:MI:SS.FF')
      

  2.   

    select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ssxff') from dual;
      

  3.   

    where fm_OpTime >= to_timestamp('2008-10-22 08:10:34.001','yyyy-mm-dd hh24:mi:ss.fff')
      

  4.   

    /--to_timestamp的用法:
    select to_timestamp('2003/12/13 10:13:18', 'YYYY/MM/DD HH:MI:SS') from dual; /--查询:
    select * from tableA where fm_OpTime>TO_TIMESTAMP('2008-10-22 08:10:34','YYYY-MM-DD HH24:MI:SS');
      

  5.   

    /--改一下:select * from tableA where fm_OpTime>TO_TIMESTAMP('2008-10-22 08:10:34.001','YYYY-MM-DD HH24:MI:SS.ff'); 
      

  6.   

    SQL> select to_timestamp('2008-10-17 22:38:25.3656','yyyy-mm-dd hh24:mi:ss.ffx') from dual;TO_TIMESTAMP('2008-10-1722:38:
    --------------------------------------------------------------------------------
    17-10月-08 10.38.25.365600000 下午
      

  7.   

    .... WHERE FM_OPTIME > TO_TIMESTAMP('20081022081034001','YYYYMMDDHH24MISSFf3');
      

  8.   

    select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ssxff') from dual;