一张表里面有个字段 A 是date类型存放的是日期和时分秒怎么查询一些记录 其时间大于在2012年2月1日8点  但是小于 2012年2月1日17点select * from table where A>'2012-02-01 8:00' and A<'2012-02-01 17:00' 吗显然不对 该怎么写呢 谢谢

解决方案 »

  1.   

    select * from table where to_char(A,'yyyy-mm-dd hh24:mi')>'2012-02-01 8:00' and to_char(A,'yyyy-mm-dd hh24:mi')><'2012-02-01 17:00'
      

  2.   

    参考:SELECT * FROM 表名
    WHERE A BETWEEN to_date('2012-02-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS')
    AND to_date('2012-02-01 17:00:00', 'YYYY-MM-DD HH24:MI:SS');
      

  3.   

    楼上这位大哥 你写的SQL不对啊统计出来的数据明显比实际的要多
      

  4.   

    between and两端是闭区间,LZ要求的是大于和小于,是开区间。
    select * from table where A>to_date('2012-02-01 8:00:00','yyyy-mm-dd hh24:mi:ss') and A<to_date('2012-02-01 17:00:00','yyyy-mm-dd hh24:mi:ss');
      

  5.   

    如上说的,自己改一下就好了,不用 between and ,用 > and < ,其它的不变。