请教Oracle存储过程日期的比较,传入的日期包含时分秒,可是比较的时候Oracle自动把时分秒去掉了,只留下了年月日,请问为什么?

解决方案 »

  1.   

    你加个to_date(youtime,'yyyy-mm-dd hh24:mi:ss')就可以了
      

  2.   

    不会吧.你dbms_output.put_line(to_char(变量,'yyyy-mm-dd hh24:mi:ss')看看到底值是什么 
      

  3.   

    to_date(dt,'yyyy-mm-dd hh24:mi:ss') 
      

  4.   

     sqlstr:=sqlstr||' AND at1.Create_Time<='||to_date(Create_Time,'yyyy-mm-dd hh24:mi:ss');Create_Time类型为date,传的值Convert.ToDateTime("2010-12-11 10:40:57"),会报
    ORA-01861: 文字与格式字符串不匹配的异常
      

  5.   

    sqlstr:=sqlstr||' AND at1.Create_Time<='||to_char(to_date(Create_Time,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss');
      

  6.   


    还是报异常:ORA-01861: 文字与格式字符串不匹配的异常
      

  7.   

    如果你要涉及到时分秒建议你不要使用date类型,改成timestamp类型最好
      

  8.   

    你现在报的错,是因为你的to_date后面那里的要作为字符串处理,这样太麻烦了,to_char后,还必须to_date,直接用timestamp代替。。