select l_code from table1 
where (to_date(g_sendtime,'yyyy-mm-dd hh24:mi')-to_date(g_indate,'yyyy-mm-dd hh24:mi') >(1/24/60)*30
以上语法执行正确,但我需要计算count就出错了
select count(*) from table1 
where (to_date(g_sendtime,'yyyy-mm-dd hh24:mi')-to_date(g_indate,'yyyy-mm-dd hh24:mi') >(1/24/60)*30
错误是ora-01861:文字与格式字符串不匹配

解决方案 »

  1.   

    表结构及数据粘出来点,看不出有什么问题
    类似这样写写
    zxf2@ORCL(192.168.21.110)> select count(*) from ttt1
      2  where sysdate-numtodsinterval(30,'minute')>to_date('2009-01-03','yyyy-mm-dd hh24:mi:ss');  COUNT(*)
    ----------
             2
      

  2.   

    g_sendtime,g_indate是什么类型字段?
      

  3.   

    检查一下g_sendtime与in_date字段值有没有空值
      

  4.   

    g_sendtime和in_date有不符合'yyyy-mm-dd hh24:mi'格式的字符串。
      

  5.   

    估计是你的 字段里的值不匹配吧。SELECT TO_DATE('200903020909', 'yyyy-mm-dd hh24:mi') -
           TO_DATE('200901010807', 'yyyy-mm-dd hh24:mi') - 50
      FROM DUAL;
      

  6.   

    是不是里面有空格或者不规则的值在转换的过程中出错了,如果你的字段是date类型就报 ora-01861:文字与格式字符串不匹配 
      

  7.   

    count(*)?就这一个要查询的?
      

  8.   

    where后面的条件最后应该是转换成字符类型才对!~