符合主键中有String Number:编号,Date time;日期
现在要取出符合主键中的日期,但是得到的只是年月日部分,时分秒部分得不到
而数据库中的记录是年月日,时分秒都有的。不是格式化的问题

解决方案 »

  1.   

    取出符合主键中的日期的日期格式有误:
      使用
        string日期: to_date('日期','yyyy-mm-dd hh24:mi:ss')
        date型日期: to_char(日期,'yyyy-mm-dd hh24:mi:ss')
         
      

  2.   

    顶一下
       oracle QQ群:54775466
               欢迎爱好者 一起入群探讨
      

  3.   

    我是用Hibernate做的:
    再HQL语句中可以转换吗?
    /*
     * (non-Javadoc) 查询级别变更表的信息列表
     * 
     * @see biz.IYjyjjbBiz#getAllYjyjjb()
     */
    public List getAllYjyjjb() {
    // TODO Auto-generated method stub
    String hql = "from YjYjJb";
    List list = super.getCommonDao().findobjectByHql(hql);
    if (list != null && list.size() > 0) {
    return list;
    } else
    return null;
    }
      

  4.   

    date型日期: to_char(日期,'yyyy-mm-dd hh24:mi:ss')我试过了
    如果要这样转换的话,封装到rs中的时候就会报无效列名/**
     * 根据ISN查询相对应的级别变更情况信息列表
     */
    public List getYjYjJbByISN(String ISN) {
    // TODO Auto-generated method stub
    String sql = "select 预警编号,to_char(变更时间,'yyyy-mm-dd hh24:mi:ss') 原级别,现级别,操作员 from YJ_YJ_JB where 预警编号='" + ISN + "'";
    List list = super.getCommonDao().getYjYjJbByISN(sql, ISN);
    if (list != null && list.size() > 0) {
    return list;
    } else
    return null;
    }/**
     * 根据预警编号查询相对应的级别变更列表集合
     */
    public List getYjYjJbByISN(String sql,String ISN) {
    // TODO Auto-generated method stub
    List list=new ArrayList();
    ResultSet rs=null;
    PreparedStatement pstmt=null;
    Session session = super.getHibernateTemplate().getSessionFactory()
    .openSession();
    Connection conn=session.connection();
    try {
    pstmt=conn.prepareStatement(sql);
    rs=pstmt.executeQuery();
    while(rs.next()){
    YjYjJb yjjb=new YjYjJb();
    yjjb.setNowLevel(rs.getString("现级别"));
    yjjb.getYjyjjbpk().setYuJingNumber(rs.getString("预警编号"));
    yjjb.getYjyjjbpk().setChangeTime(rs.getDate("变更时间"));
    yjjb.setOriginalLevel(rs.getString("原级别"));
    yjjb.setOperater(rs.getString("操作员"));
    list.add(yjjb);
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }finally{
    session.close();
    }
    return list;
    }
      

  5.   

    to_char(变更时间,'yyyy-mm-dd hh24:mi:ss') 原级别,
    yjjb.getYjyjjbpk().setChangeTime(rs.getDate("变更时间"));
    yjjb.setOriginalLevel(rs.getString("原级别"));你的原级别就是指时间还是你少了“,”号?
    还有日期格式的最好用to_date()。
      

  6.   

    不是指的时间,是一个String的字段!
      

  7.   

    数据库中的字段是Date型的,取出后还要用to_date()吗?
      

  8.   

    这个很简单啊,之所以显示出来的是年月日而已是因为那是系统默认的日期格式。
    可以用to_char(日期,'yyyy-mm-dd hh24:mi:ss');如果要精确到微秒,可以用时间戳timestamp
      

  9.   

    但是那样得到的就是:
    yyyy-mm-dd 00:00:00