2015-08-27 41 views
-2

我插入的时候像这样在我的数据库:显示日期时间把jsp

java.util.Date dt = new java.util.Date(); 
java.text.SimpleDateFormat sdf =new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
String currentTime = sdf.format(dt); 

Class.forName("com.mysql.jdbc.Driver").newInstance(); 
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/marmota", "root", "root"); 
Statement stmt = con.createStatement(); 
stmt.executeUpdate("INSERT INTO bids(id, bidder, time, price) VALUES ('" +id + "','" + username + "','" + currentTime + "','" + price + "')"); 

随着getString("something")你可以从数据库的字符串。但我怎样才能得到我插入的当前时间?

注:我将currentTime保存为DATETIME到我的数据库中。

+2

,不存储日期为字符串您在DB – Jens

+1

“节点i currentTime的另存为DATETIME在我的分贝。”你不可以。你可以将它保存为一个字符串 – Jens

+0

你可以使用'date_format()'函数获得'datatime'作为字符串,查看'date_format()'的例子:http://www.w3schools.com/sql/func_date_format.asp – Srinu

回答

1

您不会将currentTime作为DATETIME类型存储在您的数据库中。根据你的代码,你将它保存为string

String currentTime = sdf.format(dt); 

这不是一个好的做法,以时间存储为string时间DB,尤其是当你的系统在不同的时区的工作。

所以你最好声明currentTime为:

java.sql.Time currentTime = new Time(System.currentTimeMillis()); 

然后改变你的数据库字段time的数据类型为datetime类型。 然后你的代码将工作。

+0

@ eXtacy数据库中'time'字段的数据类型是什么? –

+0

感谢您的快速回答。 datetime – eXtacy

+0

我按照你的建议保存了currentTime。我在插入查询中得到异常。 – eXtacy

0

使用Joda Time更好的日期&及时处理Java的阅读准备好的声明