pstmt.setTimestamp(5, new Timestamp(rdate.getTime()));
我往数据插入的时间用的这个,但是好像不对,请教各位大神。第五个我的日期是java.util.Date rdate类型

解决方案 »

  1.   

    目测标题与内容不符合,如果是系统时间不就是new Date()嘛
      

  2.   

    方法一、使用java.sql.Date实现比较简单的yyyy-mm-dd格式日期。java.sql.Date不支持时间格式。切记不要使用new java.sql.Date(int year,int month,int date),因为还要处理时间差问题。
    PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,?)");
    java.sql.Date buydate=java.sql.Date.valueOf("2005-06-08");
    pstmt.setString(1, "Java编程思想");
    pstmt.setDate(2,buydate );
    pstmt.execute();
    方法二、使用java.sql.Timestamp,同上不使用new Timestamp(....)
    PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,?)");
    java.sql.Timestamp buydate=java.sql.Timestamp.valueOf("2004-06-08 05:33:99");
    pstmt.setString(1, "Java编程思想");
    pstmt.setTimestamp(2,buydate );
    pstmt.execute();
    方法三、使用oracle 的to_date内置函数
    PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,to_date(?, 'yyyy-mm-dd hh24:mi:ss')");
    String buydate="2004-06-08 05:33:99";
    pstmt.setString(1, "Java编程思想");
    pstmt.setString(2,buydate );
    pstmt.execute();
      

  3.   

    系统时间的获取我上次也搞错了。提示你一下,一般在一个类里面用的少的话,可以用下面这样的:new Date().getTime();//获取系统当前时间.
    如果用的比较多,则可以这样写:
    Date d = new Date();
    d.getTime();//获取系统当前时间.
      

  4.   

    你会不会数据库类型设置错了,我写了下面这个例子,运行正确,数据库中time类型是timestamp
    代码如下:import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.sql.Timestamp;
    import java.util.Date;
    public class TestDemo {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
    Class.forName("com.mysql.jdbc.Driver");
    Connection conn = DriverManager.getConnection(
    "jdbc:mysql://localhost:3306/test", "root", "root");
    String sql = "insert into jdbc(name,address,time) values(?,?,?)";
    PreparedStatement ps = conn.prepareStatement(sql);
    ps.setString(1, "张三");
    ps.setString(2, "广东");
    ps.setTimestamp(3, new Timestamp(new Date().getTime()));
    ps.executeUpdate();
    ps.close();
    conn.close();
    }
    }