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 如何在mysql中存储当前日期和时间_Java_Mysql_Database - Fatal编程技术网

Java 如何在mysql中存储当前日期和时间

Java 如何在mysql中存储当前日期和时间,java,mysql,database,Java,Mysql,Database,我有一个java程序,其中我使用java.util.Date获取当前日期和时间,我在mysql中有一个表,其中有一个字段 ActivityTime date; // date is the type 我用事先准备好的语句插入表中 java.util.Date today = new java.util.Date(); long t = today.getTime(); PreparedStatement ps = con.prepareStatement( "

我有一个java程序,其中我使用java.util.Date获取当前日期和时间,我在mysql中有一个表,其中有一个字段

ActivityTime date; // date is the type
我用事先准备好的语句插入表中

java.util.Date today = new java.util.Date();
long t = today.getTime();

PreparedStatement ps = con.prepareStatement(
                "insert into UserActivity values (?, ?, ?, ?, ?, ?)");
....
ps.setDate(5, new java.sql.Date(t));
....
输出中的日期显示正确,但时间是00:00:00,我不知道为什么会发生这种情况? 也请帮我争取时间。 当我打印java.util.date时,它显示了正确的时间。问题是如何在sql表中插入时间

PS:可能这很简单,但java api对我来说是新的

您可能需要java.sql.Timestamp,更好的是您可以在数据库端处理它,只需设置默认值

create table test (ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
您可能需要java.sql.Timestamp,甚至可以在数据库端处理它,只需设置默认值

create table test (ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);

我建议使用MySQL datetime字段类型,然后立即使用函数向其插入一个值

您可以这样插入日期:

INSERT INTO `table-name`(`DATETIME-FIELD-NAME`) VALUES(NOW());

我建议使用MySQL datetime字段类型,然后立即使用函数向其插入一个值

您可以这样插入日期:

INSERT INTO `table-name`(`DATETIME-FIELD-NAME`) VALUES(NOW());
希望能对你有所帮助


希望对您有所帮助

时间戳应仅用于表版本控制。请改用DateTimes。@jue,您能再详细说明一下吗?请看这里:时间戳应该只用于表版本控制。用DateTimes代替。@jue,你能不能再详细解释一下?看这里:假设我在数据库中插入System.currentTimeMillis,那么我能把这些毫秒转换成日期吗?当然可以用这个http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Date.htmlDatelongThanks 夏军,这种方法工作得很好,也要感谢所有的回答者:更好的是,使用时间戳并将其默认值设置为当前时间戳。时间戳占用了日期时间的一半存储空间,如果需要,db可以更容易地索引。假设我在数据库中插入System.currentTimeMillis,那么我可以将这些毫秒转换为日期吗?当然可以使用这个http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Date.htmlDatelongThanks 夏军,这种方法工作得很好,也要感谢所有的回答者:更好的是,使用时间戳并将其默认值设置为当前时间戳。时间戳占用了日期时间的一半存储空间,如果需要的话,db也可以更容易地索引,甚至可以这样做http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/System.htmlcurrentTimeMillisor 甚至这个http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/System.htmlcurrentTimeMillis