time是数据库中的字段,我用time >=TO_DATE('2009-06-17 04:00:00','YYYY-MM-DD HH24:MI:SS') 查不出日期比2009-06-17 04:00:00晚的记录,但用TO_DATE(TO_CHAR(time,'YYYY-MM-DD HH24:MI:SS')>=TO_DATE('2009-06-17 04:00:00','YYYY-MM-DD HH24:MI:SS')可以查出相应的记录来,请问是不是time默认取值比较大小的时候是不是只比较年月日呀?还有我在eclipse中的TO_DATE(TO_CHAR(time,'YYYY-MM-DD HH24:MI:SS')在刚赋值后就用time替换了.高手们帮忙看看是什么原因呀

解决方案 »

  1.   

    TO_DATE(TO_CHAR(time,'YYYY-MM-DD HH24:MI:SS')>=TO_DATE('2009-06-17 04:00:00','YYYY-MM-DD HH24:MI:SS')这个不对吧,好像还差括号的哟。
      

  2.   

    time是什么数据类型SQL> select time from test1.t_1;TIME
    -----------------------------------------------
    2009-06-17 12:32:36
    2009-06-17 12:32:36
    2009-06-17 12:32:36
    2009-06-17 12:32:36
    2009-06-17 12:32:36
    2009-06-17 12:32:36
    已选择6行。SQL> select time from test1.t_1 where time >= TO_DATE('2009-06-17 11:25:55','YYY
    Y-MM-DD HH24:MI:SS');TIME
    ---------------------------------------------------------------------------
    2009-06-17 12:32:36
    2009-06-17 12:32:36
    2009-06-17 12:32:36
    2009-06-17 12:32:36
    2009-06-17 12:32:36
    2009-06-17 12:32:36
    已选择6行。没有问题呀。
      

  3.   

    如果你的time字段是date类型的,time >=TO_DATE('2009-06-17 04:00:00','YYYY-MM-DD HH24:MI:SS') 是没问题的。
      

  4.   

    不好意思,粗心了,TO_DATE(TO_CHAR(time,'YYYY-MM-DD HH24:MI:SS')>=TO_DATE('2009-06-17 04:00:00','YYYY-MM-DD HH24:MI:SS') 
    应该是TO_DATE(TO_CHAR(time,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS'))>=TO_DATE('2009-06-17 04:00:00','YYYY-MM-DD HH24:MI:SS') 就是先把date转换成char,再转换成date
      

  5.   

    简化一下吧,有点乱 
    select time from venus_audit_auditevent_hist t where 
     TO_DATE(TO_CHAR(time,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS') >= TO_DATE('2009-06-16 12:00:25','YYYY-MM-DD HH24:MI:SS') and 
      TO_DATE(TO_CHAR(time,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS') <=TO_DATE('2009-06-17 04:00:25','YYYY-MM-DD HH24:MI:SS')  
    select time from venus_audit_auditevent_hist t where 
     time >= TO_DATE('2009-06-16 12:00:25','YYYY-MM-DD HH24:MI:SS') and 
      time <=TO_DATE('2009-06-17 04:00:25','YYYY-MM-DD HH24:MI:SS') 上边的语句可以查出记录来,下边的查不出来
      

  6.   

    你数据库的nls_date_formate 不是YYYY-MM-DD HH24:MI:SS格式所以就不能比较
      

  7.   

    你数据库的nls_date_formate 不是YYYY-MM-DD HH24:MI:SS格式所以就不能直接比较,需要转换相同格式后再比较
      

  8.   

    一直不能再现这个bug,比较奇怪的问题,也有可能跟时区有关系,高手们谁曾经有类似的经验,请多多指教。我邮箱:[email protected]