jdbc存储及获取oracle数据库时间字段时无法显示时分秒

关于数据库存取时间字段时只能显示日期(年月日)无法获取时间(时分秒)的问题是一个比较常见的问题,下面对于出现此问题做一个分析并找到一个解决方案。

出现此问题的原因:

       由于java.util.Date类型虽然拥有时分秒,但是此类型只是java中的类,并不是数据库时间类型,是不能直接插入数据库中的;所以只能使用java.sql.Date存入数据库,但是它只有日期而没有时间。

问题解决:

      方法一:将java.util.Date转化为java.sql.Timestamp

          public java.sql.Timestamp getTimestamp(Date date) {
                return new java.sql.Timestamp(date.getTime());
          }

     方法二:在写sql语句时将日期参数用to_date()函数进行转化      

String sql =" UPDATE  tablename  SET state=?,deal_date=to_date(?,'yyyy-mm-dd hh24:mi:ss')  where id=?

              Connection conn = null;
              PreparedStatement ps = null;
   try {
              Date date = new java.util.Date();
              SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
              String formatdate = sdf.format(date);//获取格式化日期,带有时分秒

              conn = getConnection();
	          ps = conn.prepareStatement(sql);
              ps.setString(1, state);
              ps.setString(2,formatdate);
              ps.setLong(3,Long.valueOf(id));
              ps.executeUpdate();
        } catch(Exception e) {
	        	e.printStackTrace();
	    }finally {
	            cleanUp(conn, null, ps, null);
	        }
发布了118 篇原创文章 · 获赞 59 · 访问量 49万+

猜你喜欢

转载自blog.csdn.net/u012255097/article/details/104211884