获取系统当前时间。。。
pstmt.setTimestamp(5, new Timestamp(rdate.getTime()));
我往数据插入的时间用的这个,但是好像不对,请教各位大神。第五个我的日期是java.util.Date rdate类型
------解决方案--------------------方法一、使用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();
------解决方案--------------------+2
------解决方案--------------------你会不会数据库类型设置错了,我写了下面这个例子,运行正确,数据库中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();
}
}