下面是我在SQL*PLUS中的sql语句,我在BS表中查找BEGINTIME时,明明有23:00 和22:00两个字段,
但是我又select * from BS where BEGINTIME='23:00'确没有记录,这是怎么回事啊,郁闷死了,真的不知道出错在哪了,大家帮忙看看吧SQL> select BEGINTIME from BS;BEGINTIME
---------------------
 23:00
 23:00
 23:00
 22:00
 22:00
 22:00
 23:00
 23:00
 23:00
 23:00
 23:00BEGINTIME
---------------------
 23:00
 23:00
 23:00
 23:00
 23:00
 23:00
 23:0018 rows selected.SQL> select * from BS where BEGINTIME='23:00'
  2  ;no rows selected

解决方案 »

  1.   

    具体是什么类型的字段
    select * from BS where TO_CHAR(BEGINTIME)='23:00'
      

  2.   

    数据类型不对,或者数据有空格select * from BS where to_char(BEGINTIME) like '%23:00%'
      

  3.   

    select * from BS where TO_CHAR(BEGINTIME)='23:00'
      

  4.   

    如果是varchar的话,就是数据有空格
    用like 来写select * from BS where BEGINTIME like '%23:00%'然后你再看出来的结果是前面有还是后面有空格
    或者
    select * from BS where ltrim(rtrim(BEGINTIME ,' '),' ')='23:00'
    注意' '中间有个空格
      

  5.   

    谢谢大家了
    用select * from BS where BEGINTIME like '%23:00%'
    可以查询成功了
    现在我想查询
    select * from BS where BEGINTIME between 23:00 and 24:00
    那要怎么实现阿,按照我刚写的语句肯定实现不了再次谢谢大家了
      

  6.   

    用我写的后面那个
    select * from BS where ltrim(rtrim(BEGINTIME ,' '),' ') between '23:00' and '24:00'
      

  7.   

    select * from BS where trim(BEGINTIME) = '23:00'