ACT_DATE 字段为类型  VARCHAR2(32) 值的格式为  2013-08-09 04:08:24 用下面的语句查询失败select * from cod_info where  ACT_DATE >= to_date('20130801010101' , 'yyyyMMddHHmmss')那位高手指点下?如果字段类型为DATE 又怎么写?

解决方案 »

  1.   

    你也说了,ACT_DATE 字段为类型  VARCHAR2(32) 
    VARCHAR2(32) 类型怎么能跟date类型比较呢to_date(ACT_DATE,'yyyy-mm-dd hh24:mi:ss') >= to_date('20130801010101' , 'yyyyMMddHHmmss')
      

  2.   

    WITH CODE AS (
      SELECT '2013-08-09 12:11:23' AS A,TO_DATE('2013-08-09 12:11:23','yyyy-mm-dd hh:mi:ss') AS B FROM DUAL UNION
      SELECT '2013-09-09 12:11:23' AS A,TO_DATE('2013-09-09 12:11:23','yyyy-mm-dd hh:mi:ss') AS B FROM DUAL UNION
      SELECT '2013-10-09 12:11:23' AS A,TO_DATE('2013-10-09 12:11:23','yyyy-mm-dd hh:mi:ss') AS B FROM DUAL UNION
      SELECT '2013-11-09 12:11:23' AS A,TO_DATE('2013-11-09 12:11:23','yyyy-mm-dd hh:mi:ss') AS B FROM DUAL
    )SELECT *
      FROM CODE
     WHERE TO_DATE(A, 'YYYY-MM-DD HH:MI:SS') >=
           TO_DATE('2013-09-01 12:00:00', 'YYYY-MM-DD HH:MI:SS');WITH CODE AS (
      SELECT '2013-08-09 12:11:23' AS A,TO_DATE('2013-08-09 12:11:23','yyyy-mm-dd hh:mi:ss') AS B FROM DUAL UNION
      SELECT '2013-09-09 12:11:23' AS A,TO_DATE('2013-09-09 12:11:23','yyyy-mm-dd hh:mi:ss') AS B FROM DUAL UNION
      SELECT '2013-10-09 12:11:23' AS A,TO_DATE('2013-10-09 12:11:23','yyyy-mm-dd hh:mi:ss') AS B FROM DUAL UNION
      SELECT '2013-11-09 12:11:23' AS A,TO_DATE('2013-11-09 12:11:23','yyyy-mm-dd hh:mi:ss') AS B FROM DUAL
    )      
    SELECT *
      FROM CODE
     WHERE B >= TO_DATE('2013-09-01 12:00:00', 'YYYY-MM-DD HH:MI:SS');
      

  3.   

    如果字段格式是时间SELECT *
      FROM warehouseoutdrug
     WHERE ACTDATE >= TO_DATE('2013-09-01 12:00:00', 'YYYY-MM-DD HH:MI:SS');查询成功。
      

  4.   

    to_date  和  to_char 的转换
      

  5.   

    >=to_date('20130801010101' , [color=#FF0000]'yyyyMMddhh24miss'
      

  6.   

    >=to_date('20130801010101' , 'yyyyMMddhh24miss' )
      

  7.   

    看表中字段  ACT_DATE  是否有不是日期类型字符串的
      

  8.   

    你的时间类型不对。应该为 YYYY-MM-DD HH24:MI:SS 而不是你的yyyy-mm-dd hhmmss 因为这里的mm出现了两次。
      

  9.   

    to_date('20130801010101' , 'yyyy/mm/dd hh24:mi:ss') 
      

  10.   

    select * from cod_info where  ACT_DATE >= to_date('20130801010101' , 'yyyymmddhh24miss')
    时间格式错了
      

  11.   

    既然你存进去的相当于yyyy-mm-dd hh24:mi:ss
    那么,直接比较就行
    select * from cod_info where  ACT_DATE >= '2013-08-01 01:01:01'
      

  12.   

    select to_date('20101203122336','yyyyMMddHH24miss') from dual
      

  13.   

    改成SELECT *
      FROM warehouseoutdrug
     WHERE ACTDATE >= TO_DATE('2013-09-01 12:00:00', 'YYYY-MM-DD HH24:MI:SS');
      

  14.   

    select * from cod_info where  ACT_DATE >= to_char(to_date('20130801010101' , 'yyyyMMddHHmmss'),'yyyy-MM-dd HH24:mm:ss')
      

  15.   

    select * from cod_info where  ACT_DATE >= to_date('20130801010101' , 'yyyyMMddhh24miss')