java.util.Date和java.sql.Date相互转换问题


1、用的mysql数据库,情况是这样的:在发布信息时发布时间用java.util.date生成当前系统时间
然后在插入数据库的时候怎么把这个时间转换成java.sql.date插入表中?

 java.sql.Date date=new java.sql.Date(d.getTime());  (其中d是java.util.Date类型)

2、用的mysql数据库,学生信息表中的生日类型是Date类型,java程序向数据库中插入数据:

(仅包括核心代码)

  Connection conn = null;
  Date d = null;
   Class.forName("com.mysql.jdbc.Driver");
   String url = "jdbc:mysql://localhost/student?characterEncoding=gbk";
   String user = "root";
   String password = "vlab214";
   conn = DriverManager.getConnection(url, user, password);
   
   SimpleDateFormat  format = new SimpleDateFormat("yyyy-MM-dd");
    d = format.parse("2008-12-09");         //字符串转化成Date类型(这里是java.util.Date)
   
   String sql = "insert into tab_stuinf values(?,?,?,?,?)";
   PreparedStatement pstmt = null;
   pstmt = conn.prepareStatement(sql);
   pstmt.setInt(1, 7667);
   pstmt.setString(2, "mary");
   java.sql.Date date=new java.sql.Date(d.getTime());  //把java.util.Date转换成java.sql.Date
   pstmt.setDate(3, date);
   pstmt.setString(4, "女");
   pstmt.setInt(5, 9);
   pstmt.execute();
   
      if(conn!=null)
      conn.close();
    当然,对于这个问题也可不必这么麻烦,直接将pstmt.setDate(3, date)改为pstmt.setString(3, "2008-12-09")也可插入数据表

3、(来自百度百科,没有测试)

我想将util中的Date转换成sql中的Date,这样来转换
java.sql.Date ds=new java.sql.Date(new java.util.Date().getTime())
但只输出了年月日,我想输出这样的格式的:yyyy-MM-dd hh:mm:ss
要怎样写呢?
还有,怎样让数据库中显示的日期是:yyyy-MM-dd hh:mm:ss格式呢?我通过上面的转换后写入数据库,在数据库中显示的结果为是:yyyy-MM-dd 00:00:00,是mysql数据库,字段类型为:datetime
我要的是这样的啊:2008-12-27 18:28:36

    呵呵,我找到了一个方法:Timestamp.valueOf(String s),变成Timestamp后插入到数据库


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM