mysql java sql在sql数据库中插入时间戳
我试图在数据库中插入一个时间戳,但我的代码抛出了一个异常,它告诉我这与我的sql语句有关
显示的异常消息是:
"Fout in Rit_ToevoegenController.okKnop(): SQLException in RitDB.voegRitToe() - statement"
okKnop是另一个调用voegRitToe()的方法
名为“starttijd”的列的类型是TIMESTAMP,DB数据类型是DateTime
我相当确定是时间戳导致了问题,因为其他2个只是一个字符串和一个int
如果您能为我们提供帮助,我们将不胜感激。我需要将时间和日期都插入数据库,以便以后比较
public void voegRitToe(Rit r) throws DBException{
Timestamp starttijd = new Timestamp(System.currentTimeMillis());
//Date date = new Date(starttijd.getTime());
try(Connection conn = ConnectionManager.getConnection();){
try(PreparedStatement stmt = conn.prepareStatement("insert into rit(starttijd, lid_rijksregisternummer, fiets_registratienummer) values(?,?,?)");){
stmt.setTimestamp(1, starttijd);
stmt.setString(2, r.getLid().getRegisterNr());
stmt.setInt(3, r.getFiets().getRegisNr());
stmt.execute();
}
catch(SQLException sqlEx){
throw new DBException("SQLException in RitDB.voegRitToe() - statement");
}
}
catch(SQLException sqlEx){
throw new DBException("SQLException in RitDB.voegRitToe() - verbinding");
}
}
# 1 楼答案
时间戳和日期时间有不同的用途;时间戳用于自动时间戳
我猜你是在时间戳来的,因为
java.sql.Date
通过将时间部分设置为零来包装java.util.Date
如果数据库服务器的时间正确,还可以执行以下操作:
顺便说一句,如果您有符合Java8的驱动程序,Java8引入了新的日期/时间类并“改进”了JDBC的使用