如何使用java prepare语句更新mysql时间戳列?

如何使用java prepare语句更新mysql时间戳列?,java,mysql,sql,jdbc,prepared-statement,Java,Mysql,Sql,Jdbc,Prepared Statement,我创建了如下表: create table sample(id int不为null,在时间戳创建,在时间戳更新,名称varchar(100),主键(id)); 已尝试按以下不同方式更新列,但无法更新时间: Calendar Calendar=Calendar.getInstance(); java.util.Date now=calendar.getTime(); java.sql.Timestamp updatedAt=new java.sql.Timestamp(now.getTime()

我创建了如下表:

create table sample(id int不为null,在时间戳创建,在时间戳更新,名称varchar(100),主键(id));
已尝试按以下不同方式更新列,但无法更新时间:

Calendar Calendar=Calendar.getInstance();
java.util.Date now=calendar.getTime();
java.sql.Timestamp updatedAt=new java.sql.Timestamp(now.getTime());
stmt.setTimestamp(2,updatedAt);
java.sql.Timestamp updatedAt=new java.sql.Timestamp(new java.util.Date().getTime());
stmt.setTimestamp(2,updatedAt);
SimpleDataFormat sdf=新的SimpleDataFormat(“yyyy-MM-dd HH:MM:ss”);
日期=新日期();
字符串updatedAt=sdf.format(日期);
stmt.setString(2,更新日期);
final java.util.Date updatedAt=new java.util.Date(System.currentTimeMillis());
setDate(2,新的java.sql.Date(updatedAt.getTime());
请帮助我解决此问题?

由于sql约定,
java.sql.Date()
会删除日期的时间部分。你可以查一下


请告诉我们,发生了什么事?无法更新数据库表中的时间,它正在更新,如2014-07-29 00:00:00您的数据库有一个错误的类型?不,我没有写任何触发器@wombat您应该分离代码或使用一个不起作用的代码,或者发布。根据他的代码
java.sql.Timestamp updatedAt=new java.sql.Timestamp(now.getTime());stmt.setTimestamp(2,updatedAt)
他已经根据javadoc sql做了同样的事情。Date是一个毫秒值的薄型包装,它允许JDBC将其识别为sql日期值@ScaryWombat他的代码是错误的,它没有用毫秒来创建时间戳。是的,@thrarry Wombat已经尝试了上面的代码,但由于Date有毫秒,我们将e无法更新该文件column@RomanC
java.util.Date now
Date.getime()
返回毫秒
Timestamp updatedAt = new Timestamp(Calendar.getInstance().getTimeInMillis());
stmt.setTimestamp(2, updatedAt);