我在客户端这边,通过sql语句select数据库,但是有一个日期字段,一旦加上作为查询条件,就检索不到值,删掉这个查询条件就好了。我打印了下后台,取到数据库中的日期值。
开始日期:2013-09-02 00:00:00.0
获取日期:2011-11-17.18.27. 27. 0
其中开始日期是我这边程序输入作为一个查询条件的,获取日期是我在数据库中取出来的,由于现在没有办法看数据中date字段的类型和存储形式,所以想问下,以打印的结果来看,这两个日期是同一个类型吗?
开始日期是Timestamp。数据库的不清楚,请高人推测一下,查询没有结果的原因。sql数据库select

解决方案 »

  1.   

    开始日期:2013-09-02 00:00:00.0
    获取日期:2011-11-17.18.27. 27. 0
     肯定是查询不到数据了,你转换一下:YYYYMMDDHH24miss 这样的 再进行比对
      

  2.   

    是什么客户端,居然不能获得表结构……即使是java调用,也能通过ResultSetMetaData知道每列的数据类型阿
      

  3.   

    数据库的格式式是改不了的,因为其他地方可能也用到,所以只能该我这边的,关键是我之后重写了sql作为测试,我把我的日期格式改的和他一样就哪获取到的日期作为一个新的判断条件,这样的话,运行居然报错,说sql不正确。这是什么情况。
      

  4.   

    怎么获取啊,这块不熟。我这边没有安装oracle客户端。只是通过程序连接,然后打印结果查看,
      

  5.   

    getColumnType(int)参考这篇文章:
    http://www.cnblogs.com/chinafine/articles/1847205.html
      

  6.   

    getInt(int); 将序号为 int 的列的内容作为整数返回。 getInt(String); 将名称为 String 的列的内容作为整数返回。 getFloat(int); 将序号为 int 的列的内容作为一个 float 型数返回。 getFloat(String); 将名称为 String 的列的内容作为 float 型数返回。 getDate(int); 将序号为 int 的列的内容作为日期返回。 getDate(String); 将名称为 String 的列的内容作为日期返回。 
    这里面是已经知道了数据类型,我这边是不知道啊,我只知道打印的结果值。无法判断它的类型和存储方式
      

  7.   

    Session session = this.getSession();
    Criteria ct = session.createCriteria(XXX.class);
    ct.add(Expression.eq("projectId", projectId));
    ct.add(Expression.between("date", beginTime, endTime));//此判断条件导致sql语句无结果sunkz
    ct.addOrder(Order.desc("date"));
    ct.setFirstResult(beginIndex);
    ct.setMaxResults(pageRowCount);
    List<UpdateLog> logList = ct.list();
    session.close();
      

  8.   


    我的意思是你把这个sql打印出来,Show_SQL 参数为True 
      

  9.   


    我的意思是你把这个sql打印出来,Show_SQL 参数为True 哥哥啊
    就是打印不出来啊,不是有注释吗?
    打印的也就是个数组而已,里面一些内容是机密啊!哥
      

  10.   

    原来是hibernate封装了,应该不是数据类型问题,不然早报错了。而是beginTime, endTime不在范围之类。给beginTime,endTime赋值测试一下。beginTime = 2010-09-02 00:00:00.0
    endTime = 2013-09-02 00:00:00.0