How do I set a full date & time sql using java, and not just the date?

℡╲_俬逩灬. 提交于 2019-12-18 14:00:11

问题


I am trying to set a timestamp in my database using java, however in my table all I get is the date, and no time (i.e., looks like "2010-09-09 00:00:00").

I am using a datetime field on my mysql database (because it appears that datetime is more common than timestamp). My code to set the date looks like this:

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();

How do I set the date to include the time?

Edit: I changed the code as per below, and it sets both the date and the time.

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();

回答1:


Use java.sql.Timestamp and setTimestamp(int, Timestamp). java.sql.Date is date-only, regardless of the type of the column it's being stored in.




回答2:


Not exactly sure what you need to use, but

ps.setDate();

expects a column type of Date. So it's normalizing it, removing the time.

Try

ps.setTimetamp();



回答3:


You could use :

private static String getTimeStamp() {
    SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    return f.format(new Date()); 
}


来源:https://stackoverflow.com/questions/3677606/how-do-i-set-a-full-date-time-sql-using-java-and-not-just-the-date

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!