如何设置完整日期&;使用java的时间sql,而不仅仅是日期?
我试图使用java在数据库中设置时间戳,但是在我的表中,我得到的只是日期,没有时间(例如,看起来像“2010-09-09 00:00:00”) 我在mysql数据库上使用了一个datetime字段(因为它就是这样)。设置日期的代码如下所示:如何设置完整日期&;使用java的时间sql,而不仅仅是日期?,java,mysql,datetime,jdbc,prepared-statement,Java,Mysql,Datetime,Jdbc,Prepared Statement,我试图使用java在数据库中设置时间戳,但是在我的表中,我得到的只是日期,没有时间(例如,看起来像“2010-09-09 00:00:00”) 我在mysql数据库上使用了一个datetime字段(因为它就是这样)。设置日期的代码如下所示: PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable (datetime_field) VALUES (?)") java.util.Date today = new java.u
PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable (datetime_field) VALUES (?)")
java.util.Date today = new java.util.Date();
java.sql.Date timestamp = new java.sql.Date(today.getTime());
ps.setDate(1, timestamp);
ps.executeUpdate();
如何将日期设置为包含时间
编辑:我根据以下更改了代码,它设置了日期和时间
PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable (datetime_field) VALUES (?)")
java.util.Date today = new java.util.Date();
java.sql.Timestamp timestamp = new java.sql.Timestamp(today.getTime());
ps.setTimestamp(1, timestamp);
ps.executeUpdate();
使用
java.sql.Timestamp
和setTimestamp(int,Timestamp)
java.sql.Date
仅为日期,而不管它存储在哪一列中。不确定需要使用什么,但是
ps.setDate();
应为日期的列类型。因此,它将其正常化,消除时间
PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable (datetime_field) VALUES (?)")
java.util.Date today = new java.util.Date();
java.sql.Timestamp timestamp = new java.sql.Timestamp(today.getTime());
ps.setTimestamp(1, timestamp);
ps.executeUpdate();
试一试
您可以使用:
private static String getTimeStamp() {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return f.format(new Date());
}
在将日期/时间保存到数据库或从数据库中读取时,不应处理日期/时间的字符串格式。JDBC的抽象,如
setTimestamp
和getTimestamp
就是为了让它变得不必要。