Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何设置完整日期&;使用java的时间sql,而不仅仅是日期?_Java_Mysql_Datetime_Jdbc_Prepared Statement - Fatal编程技术网

如何设置完整日期&;使用java的时间sql,而不仅仅是日期?

如何设置完整日期&;使用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

我试图使用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.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
就是为了让它变得不必要。